{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}
module Google.Cloud.Compute.Instance
(
InstanceMetadata (..)
, InstanceDeleteResp (..)
, InstanceStartResponse (..)
, RunDuration (..)
, OnInstanceTerminationAction (..)
, Scheduling (..)
, InstanceTerminationAction (..)
, NodeAffinity (..)
, Warning (..)
, GuestAccelerator (..)
, ReservationAffinity (..)
, DisplayDevice (..)
, ShieldedInstanceConfig (..)
, ShieldedInstanceIntegrityPolicy (..)
, UpdateAutoLearnPolicy (..)
, ConfidentialInstanceConfig (..)
, InstanceEncryptionKey (..)
, NetworkPerformanceConfig (..)
, ResourceStatus (..)
, InstanceList (..)
, Error_ (..)
, ErrorDetail (..)
, DetailedError (..)
, ErrorInfo (..)
, QuotaInfo (..)
, Help (..)
, Link (..)
, LocalizedMessage (..)
, ListInstancesQuery (..)
, RequestIdQuery (..)
, InsertInstanceOps (..)
, listInstances
, deleteInstance
, startInstance
, stopInstance
, insertInstance
, defaultListInstancesQuery
, defaultInsertInstanceOps
, defaultRequestIdQuery
)
where
import Data.Aeson
import qualified Data.ByteString as BS
import qualified Data.ByteString.Char8 as BS8
import Data.Maybe (catMaybes)
import Data.Text (Text)
import Google.Cloud.Common.Core
import Google.Cloud.Compute.Common
import qualified Data.Map.Strict as Map
data ListInstancesQuery = ListInstancesQuery
{ ListInstancesQuery -> Maybe [Char]
filter_ :: Maybe String
, ListInstancesQuery -> Maybe Int
maxResults :: Maybe Int
, ListInstancesQuery -> Maybe [Char]
orderBy :: Maybe String
, ListInstancesQuery -> Maybe [Char]
pageToken :: Maybe String
, ListInstancesQuery -> Maybe Bool
returnPartialSuccess :: Maybe Bool
}
deriving (Int -> ListInstancesQuery -> ShowS
[ListInstancesQuery] -> ShowS
ListInstancesQuery -> [Char]
(Int -> ListInstancesQuery -> ShowS)
-> (ListInstancesQuery -> [Char])
-> ([ListInstancesQuery] -> ShowS)
-> Show ListInstancesQuery
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ListInstancesQuery -> ShowS
showsPrec :: Int -> ListInstancesQuery -> ShowS
$cshow :: ListInstancesQuery -> [Char]
show :: ListInstancesQuery -> [Char]
$cshowList :: [ListInstancesQuery] -> ShowS
showList :: [ListInstancesQuery] -> ShowS
Show, ListInstancesQuery -> ListInstancesQuery -> Bool
(ListInstancesQuery -> ListInstancesQuery -> Bool)
-> (ListInstancesQuery -> ListInstancesQuery -> Bool)
-> Eq ListInstancesQuery
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ListInstancesQuery -> ListInstancesQuery -> Bool
== :: ListInstancesQuery -> ListInstancesQuery -> Bool
$c/= :: ListInstancesQuery -> ListInstancesQuery -> Bool
/= :: ListInstancesQuery -> ListInstancesQuery -> Bool
Eq)
data RequestIdQuery = RequestIdQuery
{ RequestIdQuery -> Maybe [Char]
requestId :: Maybe String
}
deriving (Int -> RequestIdQuery -> ShowS
[RequestIdQuery] -> ShowS
RequestIdQuery -> [Char]
(Int -> RequestIdQuery -> ShowS)
-> (RequestIdQuery -> [Char])
-> ([RequestIdQuery] -> ShowS)
-> Show RequestIdQuery
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> RequestIdQuery -> ShowS
showsPrec :: Int -> RequestIdQuery -> ShowS
$cshow :: RequestIdQuery -> [Char]
show :: RequestIdQuery -> [Char]
$cshowList :: [RequestIdQuery] -> ShowS
showList :: [RequestIdQuery] -> ShowS
Show, RequestIdQuery -> RequestIdQuery -> Bool
(RequestIdQuery -> RequestIdQuery -> Bool)
-> (RequestIdQuery -> RequestIdQuery -> Bool) -> Eq RequestIdQuery
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: RequestIdQuery -> RequestIdQuery -> Bool
== :: RequestIdQuery -> RequestIdQuery -> Bool
$c/= :: RequestIdQuery -> RequestIdQuery -> Bool
/= :: RequestIdQuery -> RequestIdQuery -> Bool
Eq)
data RunDuration
= TerminationTime String
deriving (Int -> RunDuration -> ShowS
[RunDuration] -> ShowS
RunDuration -> [Char]
(Int -> RunDuration -> ShowS)
-> (RunDuration -> [Char])
-> ([RunDuration] -> ShowS)
-> Show RunDuration
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> RunDuration -> ShowS
showsPrec :: Int -> RunDuration -> ShowS
$cshow :: RunDuration -> [Char]
show :: RunDuration -> [Char]
$cshowList :: [RunDuration] -> ShowS
showList :: [RunDuration] -> ShowS
Show, RunDuration -> RunDuration -> Bool
(RunDuration -> RunDuration -> Bool)
-> (RunDuration -> RunDuration -> Bool) -> Eq RunDuration
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: RunDuration -> RunDuration -> Bool
== :: RunDuration -> RunDuration -> Bool
$c/= :: RunDuration -> RunDuration -> Bool
/= :: RunDuration -> RunDuration -> Bool
Eq)
instance FromJSON RunDuration where
parseJSON :: Value -> Parser RunDuration
parseJSON = [Char]
-> (Object -> Parser RunDuration) -> Value -> Parser RunDuration
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"RunDuration" ((Object -> Parser RunDuration) -> Value -> Parser RunDuration)
-> (Object -> Parser RunDuration) -> Value -> Parser RunDuration
forall a b. (a -> b) -> a -> b
$ \Object
o -> [Char] -> RunDuration
TerminationTime ([Char] -> RunDuration) -> Parser [Char] -> Parser RunDuration
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser [Char]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"terminationTime"
instance ToJSON RunDuration where
toJSON :: RunDuration -> Value
toJSON (TerminationTime [Char]
t) = [Pair] -> Value
object [Key
"terminationTime" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [Char]
t]
data OnInstanceTerminationAction = DiscardLocalSsd {OnInstanceTerminationAction -> Bool
discardLocalSsd :: Bool}
deriving (Int -> OnInstanceTerminationAction -> ShowS
[OnInstanceTerminationAction] -> ShowS
OnInstanceTerminationAction -> [Char]
(Int -> OnInstanceTerminationAction -> ShowS)
-> (OnInstanceTerminationAction -> [Char])
-> ([OnInstanceTerminationAction] -> ShowS)
-> Show OnInstanceTerminationAction
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> OnInstanceTerminationAction -> ShowS
showsPrec :: Int -> OnInstanceTerminationAction -> ShowS
$cshow :: OnInstanceTerminationAction -> [Char]
show :: OnInstanceTerminationAction -> [Char]
$cshowList :: [OnInstanceTerminationAction] -> ShowS
showList :: [OnInstanceTerminationAction] -> ShowS
Show, OnInstanceTerminationAction -> OnInstanceTerminationAction -> Bool
(OnInstanceTerminationAction
-> OnInstanceTerminationAction -> Bool)
-> (OnInstanceTerminationAction
-> OnInstanceTerminationAction -> Bool)
-> Eq OnInstanceTerminationAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: OnInstanceTerminationAction -> OnInstanceTerminationAction -> Bool
== :: OnInstanceTerminationAction -> OnInstanceTerminationAction -> Bool
$c/= :: OnInstanceTerminationAction -> OnInstanceTerminationAction -> Bool
/= :: OnInstanceTerminationAction -> OnInstanceTerminationAction -> Bool
Eq)
instance FromJSON OnInstanceTerminationAction where
parseJSON :: Value -> Parser OnInstanceTerminationAction
parseJSON = [Char]
-> (Object -> Parser OnInstanceTerminationAction)
-> Value
-> Parser OnInstanceTerminationAction
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"OnInstanceTerminationAction" ((Object -> Parser OnInstanceTerminationAction)
-> Value -> Parser OnInstanceTerminationAction)
-> (Object -> Parser OnInstanceTerminationAction)
-> Value
-> Parser OnInstanceTerminationAction
forall a b. (a -> b) -> a -> b
$ \Object
o -> Bool -> OnInstanceTerminationAction
DiscardLocalSsd (Bool -> OnInstanceTerminationAction)
-> Parser Bool -> Parser OnInstanceTerminationAction
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser Bool
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"discardLocalSsd"
instance ToJSON OnInstanceTerminationAction where
toJSON :: OnInstanceTerminationAction -> Value
toJSON (DiscardLocalSsd Bool
b) = [Pair] -> Value
object [Key
"discardLocalSsd" Key -> Bool -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Bool
b]
data Scheduling = Scheduling
{ Scheduling -> [Char]
onHostMaintenance :: String
, Scheduling -> Bool
automaticRestart :: Bool
, Scheduling -> Bool
preemptible :: Bool
, Scheduling -> [NodeAffinity]
nodeAffinities :: [NodeAffinity]
, Scheduling -> Int
minNodeCpus :: Int
, Scheduling -> [Char]
locationHint :: String
, Scheduling -> Int
availabilityDomain :: Int
, Scheduling -> [Char]
provisioningModel :: String
, Scheduling -> InstanceTerminationAction
instanceTerminationAction :: InstanceTerminationAction
}
deriving (Int -> Scheduling -> ShowS
[Scheduling] -> ShowS
Scheduling -> [Char]
(Int -> Scheduling -> ShowS)
-> (Scheduling -> [Char])
-> ([Scheduling] -> ShowS)
-> Show Scheduling
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Scheduling -> ShowS
showsPrec :: Int -> Scheduling -> ShowS
$cshow :: Scheduling -> [Char]
show :: Scheduling -> [Char]
$cshowList :: [Scheduling] -> ShowS
showList :: [Scheduling] -> ShowS
Show, Scheduling -> Scheduling -> Bool
(Scheduling -> Scheduling -> Bool)
-> (Scheduling -> Scheduling -> Bool) -> Eq Scheduling
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Scheduling -> Scheduling -> Bool
== :: Scheduling -> Scheduling -> Bool
$c/= :: Scheduling -> Scheduling -> Bool
/= :: Scheduling -> Scheduling -> Bool
Eq)
instance FromJSON Scheduling where
parseJSON :: Value -> Parser Scheduling
parseJSON = [Char]
-> (Object -> Parser Scheduling) -> Value -> Parser Scheduling
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"Scheduling" ((Object -> Parser Scheduling) -> Value -> Parser Scheduling)
-> (Object -> Parser Scheduling) -> Value -> Parser Scheduling
forall a b. (a -> b) -> a -> b
$ \Object
o ->
[Char]
-> Bool
-> Bool
-> [NodeAffinity]
-> Int
-> [Char]
-> Int
-> [Char]
-> InstanceTerminationAction
-> Scheduling
Scheduling
([Char]
-> Bool
-> Bool
-> [NodeAffinity]
-> Int
-> [Char]
-> Int
-> [Char]
-> InstanceTerminationAction
-> Scheduling)
-> Parser [Char]
-> Parser
(Bool
-> Bool
-> [NodeAffinity]
-> Int
-> [Char]
-> Int
-> [Char]
-> InstanceTerminationAction
-> Scheduling)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser [Char]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"onHostMaintenance"
Parser
(Bool
-> Bool
-> [NodeAffinity]
-> Int
-> [Char]
-> Int
-> [Char]
-> InstanceTerminationAction
-> Scheduling)
-> Parser Bool
-> Parser
(Bool
-> [NodeAffinity]
-> Int
-> [Char]
-> Int
-> [Char]
-> InstanceTerminationAction
-> Scheduling)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Bool
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"automaticRestart"
Parser
(Bool
-> [NodeAffinity]
-> Int
-> [Char]
-> Int
-> [Char]
-> InstanceTerminationAction
-> Scheduling)
-> Parser Bool
-> Parser
([NodeAffinity]
-> Int
-> [Char]
-> Int
-> [Char]
-> InstanceTerminationAction
-> Scheduling)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Bool
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"preemptible"
Parser
([NodeAffinity]
-> Int
-> [Char]
-> Int
-> [Char]
-> InstanceTerminationAction
-> Scheduling)
-> Parser [NodeAffinity]
-> Parser
(Int
-> [Char]
-> Int
-> [Char]
-> InstanceTerminationAction
-> Scheduling)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser [NodeAffinity]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"nodeAffinities"
Parser
(Int
-> [Char]
-> Int
-> [Char]
-> InstanceTerminationAction
-> Scheduling)
-> Parser Int
-> Parser
([Char]
-> Int -> [Char] -> InstanceTerminationAction -> Scheduling)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Int
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"minNodeCpus"
Parser
([Char]
-> Int -> [Char] -> InstanceTerminationAction -> Scheduling)
-> Parser [Char]
-> Parser
(Int -> [Char] -> InstanceTerminationAction -> Scheduling)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser [Char]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"locationHint"
Parser (Int -> [Char] -> InstanceTerminationAction -> Scheduling)
-> Parser Int
-> Parser ([Char] -> InstanceTerminationAction -> Scheduling)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Int
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"availabilityDomain"
Parser ([Char] -> InstanceTerminationAction -> Scheduling)
-> Parser [Char]
-> Parser (InstanceTerminationAction -> Scheduling)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser [Char]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"provisioningModel"
Parser (InstanceTerminationAction -> Scheduling)
-> Parser InstanceTerminationAction -> Parser Scheduling
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser InstanceTerminationAction
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"instanceTerminationAction"
instance ToJSON Scheduling where
toJSON :: Scheduling -> Value
toJSON Scheduling {Bool
Int
[Char]
[NodeAffinity]
InstanceTerminationAction
$sel:onHostMaintenance:Scheduling :: Scheduling -> [Char]
$sel:automaticRestart:Scheduling :: Scheduling -> Bool
$sel:preemptible:Scheduling :: Scheduling -> Bool
$sel:nodeAffinities:Scheduling :: Scheduling -> [NodeAffinity]
$sel:minNodeCpus:Scheduling :: Scheduling -> Int
$sel:locationHint:Scheduling :: Scheduling -> [Char]
$sel:availabilityDomain:Scheduling :: Scheduling -> Int
$sel:provisioningModel:Scheduling :: Scheduling -> [Char]
$sel:instanceTerminationAction:Scheduling :: Scheduling -> InstanceTerminationAction
onHostMaintenance :: [Char]
automaticRestart :: Bool
preemptible :: Bool
nodeAffinities :: [NodeAffinity]
minNodeCpus :: Int
locationHint :: [Char]
availabilityDomain :: Int
provisioningModel :: [Char]
instanceTerminationAction :: InstanceTerminationAction
..} =
[Pair] -> Value
object
[ Key
"onHostMaintenance" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [Char]
onHostMaintenance
, Key
"automaticRestart" Key -> Bool -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Bool
automaticRestart
, Key
"preemptible" Key -> Bool -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Bool
preemptible
, Key
"nodeAffinities" Key -> [NodeAffinity] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [NodeAffinity]
nodeAffinities
, Key
"minNodeCpus" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
minNodeCpus
, Key
"locationHint" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [Char]
locationHint
, Key
"availabilityDomain" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
availabilityDomain
, Key
"provisioningModel" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [Char]
provisioningModel
, Key
"instanceTerminationAction" Key -> InstanceTerminationAction -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= InstanceTerminationAction
instanceTerminationAction
]
data InstanceTerminationAction
= RunDurationRunDuration RunDuration
deriving (Int -> InstanceTerminationAction -> ShowS
[InstanceTerminationAction] -> ShowS
InstanceTerminationAction -> [Char]
(Int -> InstanceTerminationAction -> ShowS)
-> (InstanceTerminationAction -> [Char])
-> ([InstanceTerminationAction] -> ShowS)
-> Show InstanceTerminationAction
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> InstanceTerminationAction -> ShowS
showsPrec :: Int -> InstanceTerminationAction -> ShowS
$cshow :: InstanceTerminationAction -> [Char]
show :: InstanceTerminationAction -> [Char]
$cshowList :: [InstanceTerminationAction] -> ShowS
showList :: [InstanceTerminationAction] -> ShowS
Show, InstanceTerminationAction -> InstanceTerminationAction -> Bool
(InstanceTerminationAction -> InstanceTerminationAction -> Bool)
-> (InstanceTerminationAction -> InstanceTerminationAction -> Bool)
-> Eq InstanceTerminationAction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: InstanceTerminationAction -> InstanceTerminationAction -> Bool
== :: InstanceTerminationAction -> InstanceTerminationAction -> Bool
$c/= :: InstanceTerminationAction -> InstanceTerminationAction -> Bool
/= :: InstanceTerminationAction -> InstanceTerminationAction -> Bool
Eq)
instance FromJSON InstanceTerminationAction where
parseJSON :: Value -> Parser InstanceTerminationAction
parseJSON Value
v = RunDuration -> InstanceTerminationAction
RunDurationRunDuration (RunDuration -> InstanceTerminationAction)
-> Parser RunDuration -> Parser InstanceTerminationAction
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Value -> Parser RunDuration
forall a. FromJSON a => Value -> Parser a
parseJSON Value
v
instance ToJSON InstanceTerminationAction where
toJSON :: InstanceTerminationAction -> Value
toJSON (RunDurationRunDuration RunDuration
rd) = RunDuration -> Value
forall a. ToJSON a => a -> Value
toJSON RunDuration
rd
data NodeAffinity = NodeAffinity
{ NodeAffinity -> [Char]
key :: String
, NodeAffinity -> [Char]
operator :: String
, NodeAffinity -> [[Char]]
values :: [String]
}
deriving (Int -> NodeAffinity -> ShowS
[NodeAffinity] -> ShowS
NodeAffinity -> [Char]
(Int -> NodeAffinity -> ShowS)
-> (NodeAffinity -> [Char])
-> ([NodeAffinity] -> ShowS)
-> Show NodeAffinity
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> NodeAffinity -> ShowS
showsPrec :: Int -> NodeAffinity -> ShowS
$cshow :: NodeAffinity -> [Char]
show :: NodeAffinity -> [Char]
$cshowList :: [NodeAffinity] -> ShowS
showList :: [NodeAffinity] -> ShowS
Show, NodeAffinity -> NodeAffinity -> Bool
(NodeAffinity -> NodeAffinity -> Bool)
-> (NodeAffinity -> NodeAffinity -> Bool) -> Eq NodeAffinity
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: NodeAffinity -> NodeAffinity -> Bool
== :: NodeAffinity -> NodeAffinity -> Bool
$c/= :: NodeAffinity -> NodeAffinity -> Bool
/= :: NodeAffinity -> NodeAffinity -> Bool
Eq)
instance FromJSON NodeAffinity where
parseJSON :: Value -> Parser NodeAffinity
parseJSON = [Char]
-> (Object -> Parser NodeAffinity) -> Value -> Parser NodeAffinity
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"NodeAffinity" ((Object -> Parser NodeAffinity) -> Value -> Parser NodeAffinity)
-> (Object -> Parser NodeAffinity) -> Value -> Parser NodeAffinity
forall a b. (a -> b) -> a -> b
$ \Object
o ->
[Char] -> [Char] -> [[Char]] -> NodeAffinity
NodeAffinity
([Char] -> [Char] -> [[Char]] -> NodeAffinity)
-> Parser [Char] -> Parser ([Char] -> [[Char]] -> NodeAffinity)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser [Char]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"key"
Parser ([Char] -> [[Char]] -> NodeAffinity)
-> Parser [Char] -> Parser ([[Char]] -> NodeAffinity)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser [Char]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"operator"
Parser ([[Char]] -> NodeAffinity)
-> Parser [[Char]] -> Parser NodeAffinity
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser [[Char]]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"values"
instance ToJSON NodeAffinity where
toJSON :: NodeAffinity -> Value
toJSON NodeAffinity {[Char]
[[Char]]
$sel:key:NodeAffinity :: NodeAffinity -> [Char]
$sel:operator:NodeAffinity :: NodeAffinity -> [Char]
$sel:values:NodeAffinity :: NodeAffinity -> [[Char]]
key :: [Char]
operator :: [Char]
values :: [[Char]]
..} =
[Pair] -> Value
object
[ Key
"key" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [Char]
key
, Key
"operator" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [Char]
operator
, Key
"values" Key -> [[Char]] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [[Char]]
values
]
data Warning = Warning
{ Warning -> [Char]
code :: String
, Warning -> [Char]
message :: String
}
deriving (Int -> Warning -> ShowS
[Warning] -> ShowS
Warning -> [Char]
(Int -> Warning -> ShowS)
-> (Warning -> [Char]) -> ([Warning] -> ShowS) -> Show Warning
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Warning -> ShowS
showsPrec :: Int -> Warning -> ShowS
$cshow :: Warning -> [Char]
show :: Warning -> [Char]
$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)
instance FromJSON Warning where
parseJSON :: Value -> Parser Warning
parseJSON = [Char] -> (Object -> Parser Warning) -> Value -> Parser Warning
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"Warning" ((Object -> Parser Warning) -> Value -> Parser Warning)
-> (Object -> Parser Warning) -> Value -> Parser Warning
forall a b. (a -> b) -> a -> b
$ \Object
o ->
[Char] -> [Char] -> Warning
Warning
([Char] -> [Char] -> Warning)
-> Parser [Char] -> Parser ([Char] -> Warning)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser [Char]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"code"
Parser ([Char] -> Warning) -> Parser [Char] -> 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
o Object -> Key -> Parser [Char]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"message"
instance ToJSON Warning where
toJSON :: Warning -> Value
toJSON Warning {[Char]
$sel:code:Warning :: Warning -> [Char]
$sel:message:Warning :: Warning -> [Char]
code :: [Char]
message :: [Char]
..} =
[Pair] -> Value
object
[ Key
"code" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [Char]
code
, Key
"message" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [Char]
message
]
data InstanceMetadata = InstanceMetadata
{ InstanceMetadata -> Maybe [Char]
cpuPlatform :: Maybe String
, InstanceMetadata -> Maybe Text
labelFingerprint :: Maybe Text
, InstanceMetadata -> Maybe InstanceEncryptionKey
instanceEncryptionKey :: Maybe InstanceEncryptionKey
, InstanceMetadata -> Maybe Text
minCpuPlatform :: Maybe Text
, InstanceMetadata -> Maybe [GuestAccelerator]
guestAccelerators :: Maybe [GuestAccelerator]
, InstanceMetadata -> Maybe Bool
startRestricted :: Maybe Bool
, InstanceMetadata -> Maybe Bool
deletionProtection :: Maybe Bool
, InstanceMetadata -> Maybe [Text]
resourcePolicies :: Maybe [Text]
, InstanceMetadata -> Maybe Text
sourceMachineImage :: Maybe Text
, InstanceMetadata -> Maybe ReservationAffinity
reservationAffinity :: Maybe ReservationAffinity
, InstanceMetadata -> Maybe Text
hostname :: Maybe Text
, InstanceMetadata -> Maybe DisplayDevice
displayDevice :: Maybe DisplayDevice
, InstanceMetadata -> Maybe ShieldedInstanceConfig
shieldedInstanceConfig :: Maybe ShieldedInstanceConfig
, InstanceMetadata -> Maybe ShieldedInstanceIntegrityPolicy
shieldedInstanceIntegrityPolicy :: Maybe ShieldedInstanceIntegrityPolicy
, InstanceMetadata -> Maybe InstanceEncryptionKey
sourceMachineImageEncryptionKey :: Maybe InstanceEncryptionKey
, InstanceMetadata -> Maybe ConfidentialInstanceConfig
confidentialInstanceConfig :: Maybe ConfidentialInstanceConfig
, InstanceMetadata -> Maybe Text
fingerprint :: Maybe Text
, InstanceMetadata -> Maybe Text
privateIpv6GoogleAccess :: Maybe Text
, InstanceMetadata -> Maybe [Char]
lastStartTimestamp :: Maybe String
, InstanceMetadata -> Maybe [Char]
lastStopTimestamp :: Maybe String
, InstanceMetadata -> Maybe [Char]
lastSuspendedTimestamp :: Maybe String
, InstanceMetadata -> Maybe Bool
satisfiesPzs :: Maybe Bool
, InstanceMetadata -> Maybe Bool
satisfiesPzi :: Maybe Bool
, InstanceMetadata -> Maybe ResourceStatus
resourceStatus :: Maybe ResourceStatus
, InstanceMetadata -> Maybe NetworkPerformanceConfig
networkPerformanceConfig :: Maybe NetworkPerformanceConfig
, InstanceMetadata -> Maybe Text
keyRevocationActionType :: Maybe Text
}
deriving (Int -> InstanceMetadata -> ShowS
[InstanceMetadata] -> ShowS
InstanceMetadata -> [Char]
(Int -> InstanceMetadata -> ShowS)
-> (InstanceMetadata -> [Char])
-> ([InstanceMetadata] -> ShowS)
-> Show InstanceMetadata
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> InstanceMetadata -> ShowS
showsPrec :: Int -> InstanceMetadata -> ShowS
$cshow :: InstanceMetadata -> [Char]
show :: InstanceMetadata -> [Char]
$cshowList :: [InstanceMetadata] -> ShowS
showList :: [InstanceMetadata] -> ShowS
Show, InstanceMetadata -> InstanceMetadata -> Bool
(InstanceMetadata -> InstanceMetadata -> Bool)
-> (InstanceMetadata -> InstanceMetadata -> Bool)
-> Eq InstanceMetadata
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: InstanceMetadata -> InstanceMetadata -> Bool
== :: InstanceMetadata -> InstanceMetadata -> Bool
$c/= :: InstanceMetadata -> InstanceMetadata -> Bool
/= :: InstanceMetadata -> InstanceMetadata -> Bool
Eq)
instance FromJSON InstanceMetadata where
parseJSON :: Value -> Parser InstanceMetadata
parseJSON = [Char]
-> (Object -> Parser InstanceMetadata)
-> Value
-> Parser InstanceMetadata
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"InstanceMetadata" ((Object -> Parser InstanceMetadata)
-> Value -> Parser InstanceMetadata)
-> (Object -> Parser InstanceMetadata)
-> Value
-> Parser InstanceMetadata
forall a b. (a -> b) -> a -> b
$ \Object
o ->
Maybe [Char]
-> Maybe Text
-> Maybe InstanceEncryptionKey
-> Maybe Text
-> Maybe [GuestAccelerator]
-> Maybe Bool
-> Maybe Bool
-> Maybe [Text]
-> Maybe Text
-> Maybe ReservationAffinity
-> Maybe Text
-> Maybe DisplayDevice
-> Maybe ShieldedInstanceConfig
-> Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata
InstanceMetadata
(Maybe [Char]
-> Maybe Text
-> Maybe InstanceEncryptionKey
-> Maybe Text
-> Maybe [GuestAccelerator]
-> Maybe Bool
-> Maybe Bool
-> Maybe [Text]
-> Maybe Text
-> Maybe ReservationAffinity
-> Maybe Text
-> Maybe DisplayDevice
-> Maybe ShieldedInstanceConfig
-> Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
-> Parser (Maybe [Char])
-> Parser
(Maybe Text
-> Maybe InstanceEncryptionKey
-> Maybe Text
-> Maybe [GuestAccelerator]
-> Maybe Bool
-> Maybe Bool
-> Maybe [Text]
-> Maybe Text
-> Maybe ReservationAffinity
-> Maybe Text
-> Maybe DisplayDevice
-> Maybe ShieldedInstanceConfig
-> Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"cpuPlatform"
Parser
(Maybe Text
-> Maybe InstanceEncryptionKey
-> Maybe Text
-> Maybe [GuestAccelerator]
-> Maybe Bool
-> Maybe Bool
-> Maybe [Text]
-> Maybe Text
-> Maybe ReservationAffinity
-> Maybe Text
-> Maybe DisplayDevice
-> Maybe ShieldedInstanceConfig
-> Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
-> Parser (Maybe Text)
-> Parser
(Maybe InstanceEncryptionKey
-> Maybe Text
-> Maybe [GuestAccelerator]
-> Maybe Bool
-> Maybe Bool
-> Maybe [Text]
-> Maybe Text
-> Maybe ReservationAffinity
-> Maybe Text
-> Maybe DisplayDevice
-> Maybe ShieldedInstanceConfig
-> Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"labelFingerprint"
Parser
(Maybe InstanceEncryptionKey
-> Maybe Text
-> Maybe [GuestAccelerator]
-> Maybe Bool
-> Maybe Bool
-> Maybe [Text]
-> Maybe Text
-> Maybe ReservationAffinity
-> Maybe Text
-> Maybe DisplayDevice
-> Maybe ShieldedInstanceConfig
-> Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
-> Parser (Maybe InstanceEncryptionKey)
-> Parser
(Maybe Text
-> Maybe [GuestAccelerator]
-> Maybe Bool
-> Maybe Bool
-> Maybe [Text]
-> Maybe Text
-> Maybe ReservationAffinity
-> Maybe Text
-> Maybe DisplayDevice
-> Maybe ShieldedInstanceConfig
-> Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe InstanceEncryptionKey)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"instanceEncryptionKey"
Parser
(Maybe Text
-> Maybe [GuestAccelerator]
-> Maybe Bool
-> Maybe Bool
-> Maybe [Text]
-> Maybe Text
-> Maybe ReservationAffinity
-> Maybe Text
-> Maybe DisplayDevice
-> Maybe ShieldedInstanceConfig
-> Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
-> Parser (Maybe Text)
-> Parser
(Maybe [GuestAccelerator]
-> Maybe Bool
-> Maybe Bool
-> Maybe [Text]
-> Maybe Text
-> Maybe ReservationAffinity
-> Maybe Text
-> Maybe DisplayDevice
-> Maybe ShieldedInstanceConfig
-> Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"minCpuPlatform"
Parser
(Maybe [GuestAccelerator]
-> Maybe Bool
-> Maybe Bool
-> Maybe [Text]
-> Maybe Text
-> Maybe ReservationAffinity
-> Maybe Text
-> Maybe DisplayDevice
-> Maybe ShieldedInstanceConfig
-> Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
-> Parser (Maybe [GuestAccelerator])
-> Parser
(Maybe Bool
-> Maybe Bool
-> Maybe [Text]
-> Maybe Text
-> Maybe ReservationAffinity
-> Maybe Text
-> Maybe DisplayDevice
-> Maybe ShieldedInstanceConfig
-> Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [GuestAccelerator])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"guestAccelerators"
Parser
(Maybe Bool
-> Maybe Bool
-> Maybe [Text]
-> Maybe Text
-> Maybe ReservationAffinity
-> Maybe Text
-> Maybe DisplayDevice
-> Maybe ShieldedInstanceConfig
-> Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
-> Parser (Maybe Bool)
-> Parser
(Maybe Bool
-> Maybe [Text]
-> Maybe Text
-> Maybe ReservationAffinity
-> Maybe Text
-> Maybe DisplayDevice
-> Maybe ShieldedInstanceConfig
-> Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"startRestricted"
Parser
(Maybe Bool
-> Maybe [Text]
-> Maybe Text
-> Maybe ReservationAffinity
-> Maybe Text
-> Maybe DisplayDevice
-> Maybe ShieldedInstanceConfig
-> Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
-> Parser (Maybe Bool)
-> Parser
(Maybe [Text]
-> Maybe Text
-> Maybe ReservationAffinity
-> Maybe Text
-> Maybe DisplayDevice
-> Maybe ShieldedInstanceConfig
-> Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"deletionProtection"
Parser
(Maybe [Text]
-> Maybe Text
-> Maybe ReservationAffinity
-> Maybe Text
-> Maybe DisplayDevice
-> Maybe ShieldedInstanceConfig
-> Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
-> Parser (Maybe [Text])
-> Parser
(Maybe Text
-> Maybe ReservationAffinity
-> Maybe Text
-> Maybe DisplayDevice
-> Maybe ShieldedInstanceConfig
-> Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"resourcePolicies"
Parser
(Maybe Text
-> Maybe ReservationAffinity
-> Maybe Text
-> Maybe DisplayDevice
-> Maybe ShieldedInstanceConfig
-> Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
-> Parser (Maybe Text)
-> Parser
(Maybe ReservationAffinity
-> Maybe Text
-> Maybe DisplayDevice
-> Maybe ShieldedInstanceConfig
-> Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"sourceMachineImage"
Parser
(Maybe ReservationAffinity
-> Maybe Text
-> Maybe DisplayDevice
-> Maybe ShieldedInstanceConfig
-> Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
-> Parser (Maybe ReservationAffinity)
-> Parser
(Maybe Text
-> Maybe DisplayDevice
-> Maybe ShieldedInstanceConfig
-> Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe ReservationAffinity)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"reservationAffinity"
Parser
(Maybe Text
-> Maybe DisplayDevice
-> Maybe ShieldedInstanceConfig
-> Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
-> Parser (Maybe Text)
-> Parser
(Maybe DisplayDevice
-> Maybe ShieldedInstanceConfig
-> Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"hostname"
Parser
(Maybe DisplayDevice
-> Maybe ShieldedInstanceConfig
-> Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
-> Parser (Maybe DisplayDevice)
-> Parser
(Maybe ShieldedInstanceConfig
-> Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe DisplayDevice)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"displayDevice"
Parser
(Maybe ShieldedInstanceConfig
-> Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
-> Parser (Maybe ShieldedInstanceConfig)
-> Parser
(Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe ShieldedInstanceConfig)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"shieldedInstanceConfig"
Parser
(Maybe ShieldedInstanceIntegrityPolicy
-> Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
-> Parser (Maybe ShieldedInstanceIntegrityPolicy)
-> Parser
(Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe ShieldedInstanceIntegrityPolicy)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"shieldedInstanceIntegrityPolicy"
Parser
(Maybe InstanceEncryptionKey
-> Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
-> Parser (Maybe InstanceEncryptionKey)
-> Parser
(Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe InstanceEncryptionKey)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"sourceMachineImageEncryptionKey"
Parser
(Maybe ConfidentialInstanceConfig
-> Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
-> Parser (Maybe ConfidentialInstanceConfig)
-> Parser
(Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe ConfidentialInstanceConfig)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"confidentialInstanceConfig"
Parser
(Maybe Text
-> Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
-> Parser (Maybe Text)
-> Parser
(Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"fingerprint"
Parser
(Maybe Text
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
-> Parser (Maybe Text)
-> Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"privateIpv6GoogleAccess"
Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
-> Parser (Maybe [Char])
-> Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"lastStartTimestamp"
Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
-> Parser (Maybe [Char])
-> Parser
(Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"lastStopTimestamp"
Parser
(Maybe [Char]
-> Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
-> Parser (Maybe [Char])
-> Parser
(Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"lastSuspendedTimestamp"
Parser
(Maybe Bool
-> Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
-> Parser (Maybe Bool)
-> Parser
(Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"satisfiesPzs"
Parser
(Maybe Bool
-> Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
-> Parser (Maybe Bool)
-> Parser
(Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"satisfiesPzi"
Parser
(Maybe ResourceStatus
-> Maybe NetworkPerformanceConfig
-> Maybe Text
-> InstanceMetadata)
-> Parser (Maybe ResourceStatus)
-> Parser
(Maybe NetworkPerformanceConfig -> Maybe Text -> InstanceMetadata)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe ResourceStatus)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"resourceStatus"
Parser
(Maybe NetworkPerformanceConfig -> Maybe Text -> InstanceMetadata)
-> Parser (Maybe NetworkPerformanceConfig)
-> Parser (Maybe Text -> InstanceMetadata)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe NetworkPerformanceConfig)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"networkPerformanceConfig"
Parser (Maybe Text -> InstanceMetadata)
-> Parser (Maybe Text) -> Parser InstanceMetadata
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"keyRevocationActionType"
instance ToJSON InstanceMetadata where
toJSON :: InstanceMetadata -> Value
toJSON InstanceMetadata
im =
[Pair] -> Value
object ([Pair] -> Value) -> [Pair] -> Value
forall a b. (a -> b) -> a -> b
$
[Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
catMaybes
[ (Key
"cpuPlatform" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceMetadata -> Maybe [Char]
cpuPlatform InstanceMetadata
im
, (Key
"labelFingerprint" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceMetadata -> Maybe Text
labelFingerprint InstanceMetadata
im
, (Key
"instanceEncryptionKey" Key -> InstanceEncryptionKey -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (InstanceEncryptionKey -> Pair)
-> Maybe InstanceEncryptionKey -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceMetadata -> Maybe InstanceEncryptionKey
instanceEncryptionKey InstanceMetadata
im
, (Key
"minCpuPlatform" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceMetadata -> Maybe Text
minCpuPlatform InstanceMetadata
im
, (Key
"guestAccelerators" Key -> [GuestAccelerator] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([GuestAccelerator] -> Pair)
-> Maybe [GuestAccelerator] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceMetadata -> Maybe [GuestAccelerator]
guestAccelerators InstanceMetadata
im
, (Key
"startRestricted" Key -> Bool -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceMetadata -> Maybe Bool
startRestricted InstanceMetadata
im
, (Key
"deletionProtection" Key -> Bool -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceMetadata -> Maybe Bool
deletionProtection InstanceMetadata
im
, (Key
"resourcePolicies" Key -> [Text] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Text] -> Pair) -> Maybe [Text] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceMetadata -> Maybe [Text]
resourcePolicies InstanceMetadata
im
, (Key
"sourceMachineImage" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceMetadata -> Maybe Text
sourceMachineImage InstanceMetadata
im
, (Key
"reservationAffinity" Key -> ReservationAffinity -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (ReservationAffinity -> Pair)
-> Maybe ReservationAffinity -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceMetadata -> Maybe ReservationAffinity
reservationAffinity InstanceMetadata
im
, (Key
"hostname" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceMetadata -> Maybe Text
hostname InstanceMetadata
im
, (Key
"displayDevice" Key -> DisplayDevice -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (DisplayDevice -> Pair) -> Maybe DisplayDevice -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceMetadata -> Maybe DisplayDevice
displayDevice InstanceMetadata
im
, (Key
"shieldedInstanceConfig" Key -> ShieldedInstanceConfig -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (ShieldedInstanceConfig -> Pair)
-> Maybe ShieldedInstanceConfig -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceMetadata -> Maybe ShieldedInstanceConfig
shieldedInstanceConfig InstanceMetadata
im
, (Key
"shieldedInstanceIntegrityPolicy" Key -> ShieldedInstanceIntegrityPolicy -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (ShieldedInstanceIntegrityPolicy -> Pair)
-> Maybe ShieldedInstanceIntegrityPolicy -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceMetadata -> Maybe ShieldedInstanceIntegrityPolicy
shieldedInstanceIntegrityPolicy InstanceMetadata
im
, (Key
"sourceMachineImageEncryptionKey" Key -> InstanceEncryptionKey -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (InstanceEncryptionKey -> Pair)
-> Maybe InstanceEncryptionKey -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceMetadata -> Maybe InstanceEncryptionKey
sourceMachineImageEncryptionKey InstanceMetadata
im
, (Key
"confidentialInstanceConfig" Key -> ConfidentialInstanceConfig -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (ConfidentialInstanceConfig -> Pair)
-> Maybe ConfidentialInstanceConfig -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceMetadata -> Maybe ConfidentialInstanceConfig
confidentialInstanceConfig InstanceMetadata
im
, (Key
"fingerprint" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceMetadata -> Maybe Text
fingerprint InstanceMetadata
im
, (Key
"privateIpv6GoogleAccess" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceMetadata -> Maybe Text
privateIpv6GoogleAccess InstanceMetadata
im
, (Key
"lastStartTimestamp" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceMetadata -> Maybe [Char]
lastStartTimestamp InstanceMetadata
im
, (Key
"lastStopTimestamp" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceMetadata -> Maybe [Char]
lastStopTimestamp InstanceMetadata
im
, (Key
"lastSuspendedTimestamp" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceMetadata -> Maybe [Char]
lastSuspendedTimestamp InstanceMetadata
im
, (Key
"satisfiesPzs" Key -> Bool -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceMetadata -> Maybe Bool
satisfiesPzs InstanceMetadata
im
, (Key
"satisfiesPzi" Key -> Bool -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceMetadata -> Maybe Bool
satisfiesPzi InstanceMetadata
im
, (Key
"resourceStatus" Key -> ResourceStatus -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (ResourceStatus -> Pair) -> Maybe ResourceStatus -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceMetadata -> Maybe ResourceStatus
resourceStatus InstanceMetadata
im
, (Key
"networkPerformanceConfig" Key -> NetworkPerformanceConfig -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (NetworkPerformanceConfig -> Pair)
-> Maybe NetworkPerformanceConfig -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceMetadata -> Maybe NetworkPerformanceConfig
networkPerformanceConfig InstanceMetadata
im
, (Key
"keyRevocationActionType" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceMetadata -> Maybe Text
keyRevocationActionType InstanceMetadata
im
]
data GuestAccelerator = GuestAccelerator
{ GuestAccelerator -> Text
acceleratorType :: Text
, GuestAccelerator -> Int
acceleratorCount :: Int
}
deriving (Int -> GuestAccelerator -> ShowS
[GuestAccelerator] -> ShowS
GuestAccelerator -> [Char]
(Int -> GuestAccelerator -> ShowS)
-> (GuestAccelerator -> [Char])
-> ([GuestAccelerator] -> ShowS)
-> Show GuestAccelerator
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> GuestAccelerator -> ShowS
showsPrec :: Int -> GuestAccelerator -> ShowS
$cshow :: GuestAccelerator -> [Char]
show :: GuestAccelerator -> [Char]
$cshowList :: [GuestAccelerator] -> ShowS
showList :: [GuestAccelerator] -> ShowS
Show, GuestAccelerator -> GuestAccelerator -> Bool
(GuestAccelerator -> GuestAccelerator -> Bool)
-> (GuestAccelerator -> GuestAccelerator -> Bool)
-> Eq GuestAccelerator
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: GuestAccelerator -> GuestAccelerator -> Bool
== :: GuestAccelerator -> GuestAccelerator -> Bool
$c/= :: GuestAccelerator -> GuestAccelerator -> Bool
/= :: GuestAccelerator -> GuestAccelerator -> Bool
Eq)
instance FromJSON GuestAccelerator where
parseJSON :: Value -> Parser GuestAccelerator
parseJSON = [Char]
-> (Object -> Parser GuestAccelerator)
-> Value
-> Parser GuestAccelerator
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"GuestAccelerator" ((Object -> Parser GuestAccelerator)
-> Value -> Parser GuestAccelerator)
-> (Object -> Parser GuestAccelerator)
-> Value
-> Parser GuestAccelerator
forall a b. (a -> b) -> a -> b
$ \Object
o ->
Text -> Int -> GuestAccelerator
GuestAccelerator
(Text -> Int -> GuestAccelerator)
-> Parser Text -> Parser (Int -> GuestAccelerator)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"acceleratorType"
Parser (Int -> GuestAccelerator)
-> Parser Int -> Parser GuestAccelerator
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Int
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"acceleratorCount"
instance ToJSON GuestAccelerator where
toJSON :: GuestAccelerator -> Value
toJSON GuestAccelerator
ga =
[Pair] -> Value
object
[ Key
"acceleratorType" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= GuestAccelerator -> Text
acceleratorType GuestAccelerator
ga
, Key
"acceleratorCount" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= GuestAccelerator -> Int
acceleratorCount GuestAccelerator
ga
]
data ReservationAffinity = ReservationAffinity
{ ReservationAffinity -> Maybe Text
consumeReservationType :: Maybe Text
, ReservationAffinity -> Maybe Text
key :: Maybe Text
, ReservationAffinity -> Maybe [Text]
values :: Maybe [Text]
}
deriving (Int -> ReservationAffinity -> ShowS
[ReservationAffinity] -> ShowS
ReservationAffinity -> [Char]
(Int -> ReservationAffinity -> ShowS)
-> (ReservationAffinity -> [Char])
-> ([ReservationAffinity] -> ShowS)
-> Show ReservationAffinity
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ReservationAffinity -> ShowS
showsPrec :: Int -> ReservationAffinity -> ShowS
$cshow :: ReservationAffinity -> [Char]
show :: ReservationAffinity -> [Char]
$cshowList :: [ReservationAffinity] -> ShowS
showList :: [ReservationAffinity] -> ShowS
Show, ReservationAffinity -> ReservationAffinity -> Bool
(ReservationAffinity -> ReservationAffinity -> Bool)
-> (ReservationAffinity -> ReservationAffinity -> Bool)
-> Eq ReservationAffinity
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ReservationAffinity -> ReservationAffinity -> Bool
== :: ReservationAffinity -> ReservationAffinity -> Bool
$c/= :: ReservationAffinity -> ReservationAffinity -> Bool
/= :: ReservationAffinity -> ReservationAffinity -> Bool
Eq)
instance FromJSON ReservationAffinity where
parseJSON :: Value -> Parser ReservationAffinity
parseJSON = [Char]
-> (Object -> Parser ReservationAffinity)
-> Value
-> Parser ReservationAffinity
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"ReservationAffinity" ((Object -> Parser ReservationAffinity)
-> Value -> Parser ReservationAffinity)
-> (Object -> Parser ReservationAffinity)
-> Value
-> Parser ReservationAffinity
forall a b. (a -> b) -> a -> b
$ \Object
o ->
Maybe Text -> Maybe Text -> Maybe [Text] -> ReservationAffinity
ReservationAffinity
(Maybe Text -> Maybe Text -> Maybe [Text] -> ReservationAffinity)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Maybe [Text] -> ReservationAffinity)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"consumeReservationType"
Parser (Maybe Text -> Maybe [Text] -> ReservationAffinity)
-> Parser (Maybe Text)
-> Parser (Maybe [Text] -> ReservationAffinity)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"key"
Parser (Maybe [Text] -> ReservationAffinity)
-> Parser (Maybe [Text]) -> Parser ReservationAffinity
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"values"
instance ToJSON ReservationAffinity where
toJSON :: ReservationAffinity -> Value
toJSON ReservationAffinity {Maybe [Text]
Maybe Text
$sel:consumeReservationType:ReservationAffinity :: ReservationAffinity -> Maybe Text
$sel:key:ReservationAffinity :: ReservationAffinity -> Maybe Text
$sel:values:ReservationAffinity :: ReservationAffinity -> Maybe [Text]
consumeReservationType :: Maybe Text
key :: Maybe Text
values :: Maybe [Text]
..} =
[Pair] -> Value
object ([Pair] -> Value) -> [Pair] -> Value
forall a b. (a -> b) -> a -> b
$
[Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
catMaybes
[ (Key
"consumeReservationType" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe Text
consumeReservationType
, (Key
"key" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe Text
key
, (Key
"values" Key -> [Text] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Text] -> Pair) -> Maybe [Text] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Text]
values
]
data DisplayDevice = DisplayDevice
{ DisplayDevice -> Bool
enableDisplay :: Bool
}
deriving (Int -> DisplayDevice -> ShowS
[DisplayDevice] -> ShowS
DisplayDevice -> [Char]
(Int -> DisplayDevice -> ShowS)
-> (DisplayDevice -> [Char])
-> ([DisplayDevice] -> ShowS)
-> Show DisplayDevice
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DisplayDevice -> ShowS
showsPrec :: Int -> DisplayDevice -> ShowS
$cshow :: DisplayDevice -> [Char]
show :: DisplayDevice -> [Char]
$cshowList :: [DisplayDevice] -> ShowS
showList :: [DisplayDevice] -> ShowS
Show, DisplayDevice -> DisplayDevice -> Bool
(DisplayDevice -> DisplayDevice -> Bool)
-> (DisplayDevice -> DisplayDevice -> Bool) -> Eq DisplayDevice
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DisplayDevice -> DisplayDevice -> Bool
== :: DisplayDevice -> DisplayDevice -> Bool
$c/= :: DisplayDevice -> DisplayDevice -> Bool
/= :: DisplayDevice -> DisplayDevice -> Bool
Eq)
instance FromJSON DisplayDevice where
parseJSON :: Value -> Parser DisplayDevice
parseJSON = [Char]
-> (Object -> Parser DisplayDevice)
-> Value
-> Parser DisplayDevice
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"DisplayDevice" ((Object -> Parser DisplayDevice) -> Value -> Parser DisplayDevice)
-> (Object -> Parser DisplayDevice)
-> Value
-> Parser DisplayDevice
forall a b. (a -> b) -> a -> b
$ \Object
o ->
Bool -> DisplayDevice
DisplayDevice
(Bool -> DisplayDevice) -> Parser Bool -> Parser DisplayDevice
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser Bool
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"enableDisplay"
instance ToJSON DisplayDevice where
toJSON :: DisplayDevice -> Value
toJSON DisplayDevice
dd = [Pair] -> Value
object [Key
"enableDisplay" Key -> Bool -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= DisplayDevice -> Bool
enableDisplay DisplayDevice
dd]
data ShieldedInstanceConfig = ShieldedInstanceConfig
{ ShieldedInstanceConfig -> Bool
enableSecureBoot :: Bool
, ShieldedInstanceConfig -> Bool
enableVtpm :: Bool
, ShieldedInstanceConfig -> Bool
enableIntegrityMonitoring :: Bool
}
deriving (Int -> ShieldedInstanceConfig -> ShowS
[ShieldedInstanceConfig] -> ShowS
ShieldedInstanceConfig -> [Char]
(Int -> ShieldedInstanceConfig -> ShowS)
-> (ShieldedInstanceConfig -> [Char])
-> ([ShieldedInstanceConfig] -> ShowS)
-> Show ShieldedInstanceConfig
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ShieldedInstanceConfig -> ShowS
showsPrec :: Int -> ShieldedInstanceConfig -> ShowS
$cshow :: ShieldedInstanceConfig -> [Char]
show :: ShieldedInstanceConfig -> [Char]
$cshowList :: [ShieldedInstanceConfig] -> ShowS
showList :: [ShieldedInstanceConfig] -> ShowS
Show, ShieldedInstanceConfig -> ShieldedInstanceConfig -> Bool
(ShieldedInstanceConfig -> ShieldedInstanceConfig -> Bool)
-> (ShieldedInstanceConfig -> ShieldedInstanceConfig -> Bool)
-> Eq ShieldedInstanceConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ShieldedInstanceConfig -> ShieldedInstanceConfig -> Bool
== :: ShieldedInstanceConfig -> ShieldedInstanceConfig -> Bool
$c/= :: ShieldedInstanceConfig -> ShieldedInstanceConfig -> Bool
/= :: ShieldedInstanceConfig -> ShieldedInstanceConfig -> Bool
Eq)
instance FromJSON ShieldedInstanceConfig where
parseJSON :: Value -> Parser ShieldedInstanceConfig
parseJSON = [Char]
-> (Object -> Parser ShieldedInstanceConfig)
-> Value
-> Parser ShieldedInstanceConfig
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"ShieldedInstanceConfig" ((Object -> Parser ShieldedInstanceConfig)
-> Value -> Parser ShieldedInstanceConfig)
-> (Object -> Parser ShieldedInstanceConfig)
-> Value
-> Parser ShieldedInstanceConfig
forall a b. (a -> b) -> a -> b
$ \Object
o ->
Bool -> Bool -> Bool -> ShieldedInstanceConfig
ShieldedInstanceConfig
(Bool -> Bool -> Bool -> ShieldedInstanceConfig)
-> Parser Bool -> Parser (Bool -> Bool -> ShieldedInstanceConfig)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser Bool
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"enableSecureBoot"
Parser (Bool -> Bool -> ShieldedInstanceConfig)
-> Parser Bool -> Parser (Bool -> ShieldedInstanceConfig)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Bool
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"enableVtpm"
Parser (Bool -> ShieldedInstanceConfig)
-> Parser Bool -> Parser ShieldedInstanceConfig
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Bool
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"enableIntegrityMonitoring"
instance ToJSON ShieldedInstanceConfig where
toJSON :: ShieldedInstanceConfig -> Value
toJSON ShieldedInstanceConfig
sic =
[Pair] -> Value
object
[ Key
"enableSecureBoot" Key -> Bool -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ShieldedInstanceConfig -> Bool
enableSecureBoot ShieldedInstanceConfig
sic
, Key
"enableVtpm" Key -> Bool -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ShieldedInstanceConfig -> Bool
enableVtpm ShieldedInstanceConfig
sic
, Key
"enableIntegrityMonitoring" Key -> Bool -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ShieldedInstanceConfig -> Bool
enableIntegrityMonitoring ShieldedInstanceConfig
sic
]
data ShieldedInstanceIntegrityPolicy = ShieldedInstanceIntegrityPolicy
{ ShieldedInstanceIntegrityPolicy -> Maybe UpdateAutoLearnPolicy
policy :: Maybe UpdateAutoLearnPolicy
}
deriving (Int -> ShieldedInstanceIntegrityPolicy -> ShowS
[ShieldedInstanceIntegrityPolicy] -> ShowS
ShieldedInstanceIntegrityPolicy -> [Char]
(Int -> ShieldedInstanceIntegrityPolicy -> ShowS)
-> (ShieldedInstanceIntegrityPolicy -> [Char])
-> ([ShieldedInstanceIntegrityPolicy] -> ShowS)
-> Show ShieldedInstanceIntegrityPolicy
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ShieldedInstanceIntegrityPolicy -> ShowS
showsPrec :: Int -> ShieldedInstanceIntegrityPolicy -> ShowS
$cshow :: ShieldedInstanceIntegrityPolicy -> [Char]
show :: ShieldedInstanceIntegrityPolicy -> [Char]
$cshowList :: [ShieldedInstanceIntegrityPolicy] -> ShowS
showList :: [ShieldedInstanceIntegrityPolicy] -> ShowS
Show, ShieldedInstanceIntegrityPolicy
-> ShieldedInstanceIntegrityPolicy -> Bool
(ShieldedInstanceIntegrityPolicy
-> ShieldedInstanceIntegrityPolicy -> Bool)
-> (ShieldedInstanceIntegrityPolicy
-> ShieldedInstanceIntegrityPolicy -> Bool)
-> Eq ShieldedInstanceIntegrityPolicy
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ShieldedInstanceIntegrityPolicy
-> ShieldedInstanceIntegrityPolicy -> Bool
== :: ShieldedInstanceIntegrityPolicy
-> ShieldedInstanceIntegrityPolicy -> Bool
$c/= :: ShieldedInstanceIntegrityPolicy
-> ShieldedInstanceIntegrityPolicy -> Bool
/= :: ShieldedInstanceIntegrityPolicy
-> ShieldedInstanceIntegrityPolicy -> Bool
Eq)
instance FromJSON ShieldedInstanceIntegrityPolicy where
parseJSON :: Value -> Parser ShieldedInstanceIntegrityPolicy
parseJSON = [Char]
-> (Object -> Parser ShieldedInstanceIntegrityPolicy)
-> Value
-> Parser ShieldedInstanceIntegrityPolicy
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"ShieldedInstanceIntegrityPolicy" ((Object -> Parser ShieldedInstanceIntegrityPolicy)
-> Value -> Parser ShieldedInstanceIntegrityPolicy)
-> (Object -> Parser ShieldedInstanceIntegrityPolicy)
-> Value
-> Parser ShieldedInstanceIntegrityPolicy
forall a b. (a -> b) -> a -> b
$ \Object
o ->
Maybe UpdateAutoLearnPolicy -> ShieldedInstanceIntegrityPolicy
ShieldedInstanceIntegrityPolicy
(Maybe UpdateAutoLearnPolicy -> ShieldedInstanceIntegrityPolicy)
-> Parser (Maybe UpdateAutoLearnPolicy)
-> Parser ShieldedInstanceIntegrityPolicy
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser (Maybe UpdateAutoLearnPolicy)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"policy"
instance ToJSON ShieldedInstanceIntegrityPolicy where
toJSON :: ShieldedInstanceIntegrityPolicy -> Value
toJSON ShieldedInstanceIntegrityPolicy
sip =
[Pair] -> Value
object ([Pair] -> Value) -> [Pair] -> Value
forall a b. (a -> b) -> a -> b
$
[Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
catMaybes
[(Key
"policy" Key -> UpdateAutoLearnPolicy -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (UpdateAutoLearnPolicy -> Pair)
-> Maybe UpdateAutoLearnPolicy -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ShieldedInstanceIntegrityPolicy -> Maybe UpdateAutoLearnPolicy
policy ShieldedInstanceIntegrityPolicy
sip]
data UpdateAutoLearnPolicy = UpdateAutoLearnPolicy {UpdateAutoLearnPolicy -> Bool
updateAutoLearnPolicy :: Bool}
deriving (Int -> UpdateAutoLearnPolicy -> ShowS
[UpdateAutoLearnPolicy] -> ShowS
UpdateAutoLearnPolicy -> [Char]
(Int -> UpdateAutoLearnPolicy -> ShowS)
-> (UpdateAutoLearnPolicy -> [Char])
-> ([UpdateAutoLearnPolicy] -> ShowS)
-> Show UpdateAutoLearnPolicy
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> UpdateAutoLearnPolicy -> ShowS
showsPrec :: Int -> UpdateAutoLearnPolicy -> ShowS
$cshow :: UpdateAutoLearnPolicy -> [Char]
show :: UpdateAutoLearnPolicy -> [Char]
$cshowList :: [UpdateAutoLearnPolicy] -> ShowS
showList :: [UpdateAutoLearnPolicy] -> ShowS
Show, UpdateAutoLearnPolicy -> UpdateAutoLearnPolicy -> Bool
(UpdateAutoLearnPolicy -> UpdateAutoLearnPolicy -> Bool)
-> (UpdateAutoLearnPolicy -> UpdateAutoLearnPolicy -> Bool)
-> Eq UpdateAutoLearnPolicy
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: UpdateAutoLearnPolicy -> UpdateAutoLearnPolicy -> Bool
== :: UpdateAutoLearnPolicy -> UpdateAutoLearnPolicy -> Bool
$c/= :: UpdateAutoLearnPolicy -> UpdateAutoLearnPolicy -> Bool
/= :: UpdateAutoLearnPolicy -> UpdateAutoLearnPolicy -> Bool
Eq)
instance FromJSON UpdateAutoLearnPolicy where
parseJSON :: Value -> Parser UpdateAutoLearnPolicy
parseJSON = [Char]
-> (Object -> Parser UpdateAutoLearnPolicy)
-> Value
-> Parser UpdateAutoLearnPolicy
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"UpdateAutoLearnPolicy" ((Object -> Parser UpdateAutoLearnPolicy)
-> Value -> Parser UpdateAutoLearnPolicy)
-> (Object -> Parser UpdateAutoLearnPolicy)
-> Value
-> Parser UpdateAutoLearnPolicy
forall a b. (a -> b) -> a -> b
$ \Object
o ->
Bool -> UpdateAutoLearnPolicy
UpdateAutoLearnPolicy
(Bool -> UpdateAutoLearnPolicy)
-> Parser Bool -> Parser UpdateAutoLearnPolicy
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser Bool
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"updateAutoLearnPolicy"
instance ToJSON UpdateAutoLearnPolicy where
toJSON :: UpdateAutoLearnPolicy -> Value
toJSON UpdateAutoLearnPolicy
uap = [Pair] -> Value
object [Key
"updateAutoLearnPolicy" Key -> Bool -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= UpdateAutoLearnPolicy -> Bool
updateAutoLearnPolicy UpdateAutoLearnPolicy
uap]
data ConfidentialInstanceConfig = ConfidentialInstanceConfig
{ ConfidentialInstanceConfig -> Maybe Bool
enableConfidentialCompute :: Maybe Bool
, ConfidentialInstanceConfig -> Maybe Text
confidentialInstanceType :: Maybe Text
}
deriving (Int -> ConfidentialInstanceConfig -> ShowS
[ConfidentialInstanceConfig] -> ShowS
ConfidentialInstanceConfig -> [Char]
(Int -> ConfidentialInstanceConfig -> ShowS)
-> (ConfidentialInstanceConfig -> [Char])
-> ([ConfidentialInstanceConfig] -> ShowS)
-> Show ConfidentialInstanceConfig
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ConfidentialInstanceConfig -> ShowS
showsPrec :: Int -> ConfidentialInstanceConfig -> ShowS
$cshow :: ConfidentialInstanceConfig -> [Char]
show :: ConfidentialInstanceConfig -> [Char]
$cshowList :: [ConfidentialInstanceConfig] -> ShowS
showList :: [ConfidentialInstanceConfig] -> ShowS
Show, ConfidentialInstanceConfig -> ConfidentialInstanceConfig -> Bool
(ConfidentialInstanceConfig -> ConfidentialInstanceConfig -> Bool)
-> (ConfidentialInstanceConfig
-> ConfidentialInstanceConfig -> Bool)
-> Eq ConfidentialInstanceConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ConfidentialInstanceConfig -> ConfidentialInstanceConfig -> Bool
== :: ConfidentialInstanceConfig -> ConfidentialInstanceConfig -> Bool
$c/= :: ConfidentialInstanceConfig -> ConfidentialInstanceConfig -> Bool
/= :: ConfidentialInstanceConfig -> ConfidentialInstanceConfig -> Bool
Eq)
instance FromJSON ConfidentialInstanceConfig where
parseJSON :: Value -> Parser ConfidentialInstanceConfig
parseJSON = [Char]
-> (Object -> Parser ConfidentialInstanceConfig)
-> Value
-> Parser ConfidentialInstanceConfig
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"ConfidentialInstanceConfig" ((Object -> Parser ConfidentialInstanceConfig)
-> Value -> Parser ConfidentialInstanceConfig)
-> (Object -> Parser ConfidentialInstanceConfig)
-> Value
-> Parser ConfidentialInstanceConfig
forall a b. (a -> b) -> a -> b
$ \Object
o ->
Maybe Bool -> Maybe Text -> ConfidentialInstanceConfig
ConfidentialInstanceConfig
(Maybe Bool -> Maybe Text -> ConfidentialInstanceConfig)
-> Parser (Maybe Bool)
-> Parser (Maybe Text -> ConfidentialInstanceConfig)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"enableConfidentialCompute"
Parser (Maybe Text -> ConfidentialInstanceConfig)
-> Parser (Maybe Text) -> Parser ConfidentialInstanceConfig
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"confidentialInstanceType"
instance ToJSON ConfidentialInstanceConfig where
toJSON :: ConfidentialInstanceConfig -> Value
toJSON ConfidentialInstanceConfig
cic =
[Pair] -> Value
object ([Pair] -> Value) -> [Pair] -> Value
forall a b. (a -> b) -> a -> b
$
[Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
catMaybes
[ (Key
"enableConfidentialCompute" Key -> Bool -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Bool -> Pair) -> Maybe Bool -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ConfidentialInstanceConfig -> Maybe Bool
enableConfidentialCompute ConfidentialInstanceConfig
cic
, (Key
"confidentialInstanceType" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ConfidentialInstanceConfig -> Maybe Text
confidentialInstanceType ConfidentialInstanceConfig
cic
]
data InstanceEncryptionKey = InstanceEncryptionKey
{ InstanceEncryptionKey -> Maybe Text
sha256 :: Maybe Text
, InstanceEncryptionKey -> Maybe Text
kmsKeyServiceAccount :: Maybe Text
, InstanceEncryptionKey -> Maybe Text
rawKey :: Maybe Text
, InstanceEncryptionKey -> Maybe Text
rsaEncryptedKey :: Maybe Text
, InstanceEncryptionKey -> Maybe Text
kmsKeyName :: Maybe Text
}
deriving (Int -> InstanceEncryptionKey -> ShowS
[InstanceEncryptionKey] -> ShowS
InstanceEncryptionKey -> [Char]
(Int -> InstanceEncryptionKey -> ShowS)
-> (InstanceEncryptionKey -> [Char])
-> ([InstanceEncryptionKey] -> ShowS)
-> Show InstanceEncryptionKey
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> InstanceEncryptionKey -> ShowS
showsPrec :: Int -> InstanceEncryptionKey -> ShowS
$cshow :: InstanceEncryptionKey -> [Char]
show :: InstanceEncryptionKey -> [Char]
$cshowList :: [InstanceEncryptionKey] -> ShowS
showList :: [InstanceEncryptionKey] -> ShowS
Show, InstanceEncryptionKey -> InstanceEncryptionKey -> Bool
(InstanceEncryptionKey -> InstanceEncryptionKey -> Bool)
-> (InstanceEncryptionKey -> InstanceEncryptionKey -> Bool)
-> Eq InstanceEncryptionKey
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: InstanceEncryptionKey -> InstanceEncryptionKey -> Bool
== :: InstanceEncryptionKey -> InstanceEncryptionKey -> Bool
$c/= :: InstanceEncryptionKey -> InstanceEncryptionKey -> Bool
/= :: InstanceEncryptionKey -> InstanceEncryptionKey -> Bool
Eq)
instance FromJSON InstanceEncryptionKey where
parseJSON :: Value -> Parser InstanceEncryptionKey
parseJSON = [Char]
-> (Object -> Parser InstanceEncryptionKey)
-> Value
-> Parser InstanceEncryptionKey
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"InstanceEncryptionKey" ((Object -> Parser InstanceEncryptionKey)
-> Value -> Parser InstanceEncryptionKey)
-> (Object -> Parser InstanceEncryptionKey)
-> Value
-> Parser InstanceEncryptionKey
forall a b. (a -> b) -> a -> b
$ \Object
o ->
Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> InstanceEncryptionKey
InstanceEncryptionKey
(Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> InstanceEncryptionKey)
-> Parser (Maybe Text)
-> Parser
(Maybe Text
-> Maybe Text -> Maybe Text -> Maybe Text -> InstanceEncryptionKey)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"sha256"
Parser
(Maybe Text
-> Maybe Text -> Maybe Text -> Maybe Text -> InstanceEncryptionKey)
-> Parser (Maybe Text)
-> Parser
(Maybe Text -> Maybe Text -> Maybe Text -> InstanceEncryptionKey)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"kmsKeyServiceAccount"
Parser
(Maybe Text -> Maybe Text -> Maybe Text -> InstanceEncryptionKey)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Maybe Text -> InstanceEncryptionKey)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"rawKey"
Parser (Maybe Text -> Maybe Text -> InstanceEncryptionKey)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> InstanceEncryptionKey)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"rsaEncryptedKey"
Parser (Maybe Text -> InstanceEncryptionKey)
-> Parser (Maybe Text) -> Parser InstanceEncryptionKey
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"kmsKeyName"
instance ToJSON InstanceEncryptionKey where
toJSON :: InstanceEncryptionKey -> Value
toJSON InstanceEncryptionKey
iek =
[Pair] -> Value
object ([Pair] -> Value) -> [Pair] -> Value
forall a b. (a -> b) -> a -> b
$
[Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
catMaybes
[ (Key
"sha256" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceEncryptionKey -> Maybe Text
sha256 InstanceEncryptionKey
iek
, (Key
"kmsKeyServiceAccount" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceEncryptionKey -> Maybe Text
kmsKeyServiceAccount InstanceEncryptionKey
iek
, (Key
"rawKey" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceEncryptionKey -> Maybe Text
rawKey InstanceEncryptionKey
iek
, (Key
"rsaEncryptedKey" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceEncryptionKey -> Maybe Text
rsaEncryptedKey InstanceEncryptionKey
iek
, (Key
"kmsKeyName" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> InstanceEncryptionKey -> Maybe Text
kmsKeyName InstanceEncryptionKey
iek
]
data NetworkPerformanceConfig = NetworkPerformanceConfig
{ NetworkPerformanceConfig -> Text
totalEgressBandwidthTier :: Text
}
deriving (Int -> NetworkPerformanceConfig -> ShowS
[NetworkPerformanceConfig] -> ShowS
NetworkPerformanceConfig -> [Char]
(Int -> NetworkPerformanceConfig -> ShowS)
-> (NetworkPerformanceConfig -> [Char])
-> ([NetworkPerformanceConfig] -> ShowS)
-> Show NetworkPerformanceConfig
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> NetworkPerformanceConfig -> ShowS
showsPrec :: Int -> NetworkPerformanceConfig -> ShowS
$cshow :: NetworkPerformanceConfig -> [Char]
show :: NetworkPerformanceConfig -> [Char]
$cshowList :: [NetworkPerformanceConfig] -> ShowS
showList :: [NetworkPerformanceConfig] -> ShowS
Show, NetworkPerformanceConfig -> NetworkPerformanceConfig -> Bool
(NetworkPerformanceConfig -> NetworkPerformanceConfig -> Bool)
-> (NetworkPerformanceConfig -> NetworkPerformanceConfig -> Bool)
-> Eq NetworkPerformanceConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: NetworkPerformanceConfig -> NetworkPerformanceConfig -> Bool
== :: NetworkPerformanceConfig -> NetworkPerformanceConfig -> Bool
$c/= :: NetworkPerformanceConfig -> NetworkPerformanceConfig -> Bool
/= :: NetworkPerformanceConfig -> NetworkPerformanceConfig -> Bool
Eq)
instance FromJSON NetworkPerformanceConfig where
parseJSON :: Value -> Parser NetworkPerformanceConfig
parseJSON = [Char]
-> (Object -> Parser NetworkPerformanceConfig)
-> Value
-> Parser NetworkPerformanceConfig
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"NetworkPerformanceConfig" ((Object -> Parser NetworkPerformanceConfig)
-> Value -> Parser NetworkPerformanceConfig)
-> (Object -> Parser NetworkPerformanceConfig)
-> Value
-> Parser NetworkPerformanceConfig
forall a b. (a -> b) -> a -> b
$ \Object
o ->
Text -> NetworkPerformanceConfig
NetworkPerformanceConfig
(Text -> NetworkPerformanceConfig)
-> Parser Text -> Parser NetworkPerformanceConfig
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"totalEgressBandwidthTier"
instance ToJSON NetworkPerformanceConfig where
toJSON :: NetworkPerformanceConfig -> Value
toJSON NetworkPerformanceConfig
npc = [Pair] -> Value
object [Key
"totalEgressBandwidthTier" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NetworkPerformanceConfig -> Text
totalEgressBandwidthTier NetworkPerformanceConfig
npc]
data ResourceStatus = ResourceStatus
{ ResourceStatus -> [Char]
onHostMaintenance :: String
, ResourceStatus -> Bool
automaticRestart :: Bool
, ResourceStatus -> Bool
preemptible :: Bool
, ResourceStatus -> [NodeAffinity]
nodeAffinities :: [NodeAffinity]
, ResourceStatus -> Int
minNodeCpus :: Int
, ResourceStatus -> [Char]
locationHint :: String
, ResourceStatus -> Int
availabilityDomain :: Int
, ResourceStatus -> [Char]
provisioningModel :: String
, ResourceStatus -> InstanceTerminationAction
instanceTerminationAction :: InstanceTerminationAction
}
deriving (Int -> ResourceStatus -> ShowS
[ResourceStatus] -> ShowS
ResourceStatus -> [Char]
(Int -> ResourceStatus -> ShowS)
-> (ResourceStatus -> [Char])
-> ([ResourceStatus] -> ShowS)
-> Show ResourceStatus
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ResourceStatus -> ShowS
showsPrec :: Int -> ResourceStatus -> ShowS
$cshow :: ResourceStatus -> [Char]
show :: ResourceStatus -> [Char]
$cshowList :: [ResourceStatus] -> ShowS
showList :: [ResourceStatus] -> ShowS
Show, ResourceStatus -> ResourceStatus -> Bool
(ResourceStatus -> ResourceStatus -> Bool)
-> (ResourceStatus -> ResourceStatus -> Bool) -> Eq ResourceStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ResourceStatus -> ResourceStatus -> Bool
== :: ResourceStatus -> ResourceStatus -> Bool
$c/= :: ResourceStatus -> ResourceStatus -> Bool
/= :: ResourceStatus -> ResourceStatus -> Bool
Eq)
instance FromJSON ResourceStatus where
parseJSON :: Value -> Parser ResourceStatus
parseJSON = [Char]
-> (Object -> Parser ResourceStatus)
-> Value
-> Parser ResourceStatus
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"ResourceStatus" ((Object -> Parser ResourceStatus)
-> Value -> Parser ResourceStatus)
-> (Object -> Parser ResourceStatus)
-> Value
-> Parser ResourceStatus
forall a b. (a -> b) -> a -> b
$ \Object
o ->
[Char]
-> Bool
-> Bool
-> [NodeAffinity]
-> Int
-> [Char]
-> Int
-> [Char]
-> InstanceTerminationAction
-> ResourceStatus
ResourceStatus
([Char]
-> Bool
-> Bool
-> [NodeAffinity]
-> Int
-> [Char]
-> Int
-> [Char]
-> InstanceTerminationAction
-> ResourceStatus)
-> Parser [Char]
-> Parser
(Bool
-> Bool
-> [NodeAffinity]
-> Int
-> [Char]
-> Int
-> [Char]
-> InstanceTerminationAction
-> ResourceStatus)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser [Char]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"onHostMaintenance"
Parser
(Bool
-> Bool
-> [NodeAffinity]
-> Int
-> [Char]
-> Int
-> [Char]
-> InstanceTerminationAction
-> ResourceStatus)
-> Parser Bool
-> Parser
(Bool
-> [NodeAffinity]
-> Int
-> [Char]
-> Int
-> [Char]
-> InstanceTerminationAction
-> ResourceStatus)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Bool
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"automaticRestart"
Parser
(Bool
-> [NodeAffinity]
-> Int
-> [Char]
-> Int
-> [Char]
-> InstanceTerminationAction
-> ResourceStatus)
-> Parser Bool
-> Parser
([NodeAffinity]
-> Int
-> [Char]
-> Int
-> [Char]
-> InstanceTerminationAction
-> ResourceStatus)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Bool
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"preemptible"
Parser
([NodeAffinity]
-> Int
-> [Char]
-> Int
-> [Char]
-> InstanceTerminationAction
-> ResourceStatus)
-> Parser [NodeAffinity]
-> Parser
(Int
-> [Char]
-> Int
-> [Char]
-> InstanceTerminationAction
-> ResourceStatus)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser [NodeAffinity]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"nodeAffinities"
Parser
(Int
-> [Char]
-> Int
-> [Char]
-> InstanceTerminationAction
-> ResourceStatus)
-> Parser Int
-> Parser
([Char]
-> Int -> [Char] -> InstanceTerminationAction -> ResourceStatus)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Int
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"minNodeCpus"
Parser
([Char]
-> Int -> [Char] -> InstanceTerminationAction -> ResourceStatus)
-> Parser [Char]
-> Parser
(Int -> [Char] -> InstanceTerminationAction -> ResourceStatus)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser [Char]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"locationHint"
Parser
(Int -> [Char] -> InstanceTerminationAction -> ResourceStatus)
-> Parser Int
-> Parser ([Char] -> InstanceTerminationAction -> ResourceStatus)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Int
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"availabilityDomain"
Parser ([Char] -> InstanceTerminationAction -> ResourceStatus)
-> Parser [Char]
-> Parser (InstanceTerminationAction -> ResourceStatus)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser [Char]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"provisioningModel"
Parser (InstanceTerminationAction -> ResourceStatus)
-> Parser InstanceTerminationAction -> Parser ResourceStatus
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser InstanceTerminationAction
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"instanceTerminationAction"
instance ToJSON ResourceStatus where
toJSON :: ResourceStatus -> Value
toJSON ResourceStatus {Bool
Int
[Char]
[NodeAffinity]
InstanceTerminationAction
$sel:onHostMaintenance:ResourceStatus :: ResourceStatus -> [Char]
$sel:automaticRestart:ResourceStatus :: ResourceStatus -> Bool
$sel:preemptible:ResourceStatus :: ResourceStatus -> Bool
$sel:nodeAffinities:ResourceStatus :: ResourceStatus -> [NodeAffinity]
$sel:minNodeCpus:ResourceStatus :: ResourceStatus -> Int
$sel:locationHint:ResourceStatus :: ResourceStatus -> [Char]
$sel:availabilityDomain:ResourceStatus :: ResourceStatus -> Int
$sel:provisioningModel:ResourceStatus :: ResourceStatus -> [Char]
$sel:instanceTerminationAction:ResourceStatus :: ResourceStatus -> InstanceTerminationAction
onHostMaintenance :: [Char]
automaticRestart :: Bool
preemptible :: Bool
nodeAffinities :: [NodeAffinity]
minNodeCpus :: Int
locationHint :: [Char]
availabilityDomain :: Int
provisioningModel :: [Char]
instanceTerminationAction :: InstanceTerminationAction
..} =
[Pair] -> Value
object
[ Key
"onHostMaintenance" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [Char]
onHostMaintenance
, Key
"automaticRestart" Key -> Bool -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Bool
automaticRestart
, Key
"preemptible" Key -> Bool -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Bool
preemptible
, Key
"nodeAffinities" Key -> [NodeAffinity] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [NodeAffinity]
nodeAffinities
, Key
"minNodeCpus" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
minNodeCpus
, Key
"locationHint" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [Char]
locationHint
, Key
"availabilityDomain" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
availabilityDomain
, Key
"provisioningModel" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [Char]
provisioningModel
, Key
"instanceTerminationAction" Key -> InstanceTerminationAction -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= InstanceTerminationAction
instanceTerminationAction
]
data InstanceList = InstanceList
{ InstanceList -> [Char]
kind :: String
, InstanceList -> [Char]
id_ :: String
, InstanceList -> Maybe [InstanceMetadata]
items :: Maybe [InstanceMetadata]
}
deriving (Int -> InstanceList -> ShowS
[InstanceList] -> ShowS
InstanceList -> [Char]
(Int -> InstanceList -> ShowS)
-> (InstanceList -> [Char])
-> ([InstanceList] -> ShowS)
-> Show InstanceList
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> InstanceList -> ShowS
showsPrec :: Int -> InstanceList -> ShowS
$cshow :: InstanceList -> [Char]
show :: InstanceList -> [Char]
$cshowList :: [InstanceList] -> ShowS
showList :: [InstanceList] -> ShowS
Show, InstanceList -> InstanceList -> Bool
(InstanceList -> InstanceList -> Bool)
-> (InstanceList -> InstanceList -> Bool) -> Eq InstanceList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: InstanceList -> InstanceList -> Bool
== :: InstanceList -> InstanceList -> Bool
$c/= :: InstanceList -> InstanceList -> Bool
/= :: InstanceList -> InstanceList -> Bool
Eq)
instance FromJSON InstanceList where
parseJSON :: Value -> Parser InstanceList
parseJSON = [Char]
-> (Object -> Parser InstanceList) -> Value -> Parser InstanceList
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"InstanceList" ((Object -> Parser InstanceList) -> Value -> Parser InstanceList)
-> (Object -> Parser InstanceList) -> Value -> Parser InstanceList
forall a b. (a -> b) -> a -> b
$ \Object
o ->
[Char] -> [Char] -> Maybe [InstanceMetadata] -> InstanceList
InstanceList
([Char] -> [Char] -> Maybe [InstanceMetadata] -> InstanceList)
-> Parser [Char]
-> Parser ([Char] -> Maybe [InstanceMetadata] -> InstanceList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser [Char]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"kind"
Parser ([Char] -> Maybe [InstanceMetadata] -> InstanceList)
-> Parser [Char]
-> Parser (Maybe [InstanceMetadata] -> InstanceList)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser [Char]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"id"
Parser (Maybe [InstanceMetadata] -> InstanceList)
-> Parser (Maybe [InstanceMetadata]) -> Parser InstanceList
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [InstanceMetadata])
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"items"
instance ToJSON InstanceList where
toJSON :: InstanceList -> Value
toJSON InstanceList {[Char]
Maybe [InstanceMetadata]
$sel:kind:InstanceList :: InstanceList -> [Char]
$sel:id_:InstanceList :: InstanceList -> [Char]
$sel:items:InstanceList :: InstanceList -> Maybe [InstanceMetadata]
kind :: [Char]
id_ :: [Char]
items :: Maybe [InstanceMetadata]
..} =
[Pair] -> Value
object
[ Key
"kind" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [Char]
kind
, Key
"id" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [Char]
id_
, Key
"items" Key -> Maybe [InstanceMetadata] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe [InstanceMetadata]
items
]
data InstanceDeleteResp = InstanceDeleteResp
{ InstanceDeleteResp -> Maybe [Char]
kind :: Maybe String
, InstanceDeleteResp -> Maybe [Char]
id_ :: Maybe String
, InstanceDeleteResp -> Maybe [Char]
creationTimestamp :: Maybe String
, InstanceDeleteResp -> Maybe [Char]
name :: Maybe String
, InstanceDeleteResp -> Maybe [Char]
zone :: Maybe String
, InstanceDeleteResp -> Maybe [Char]
clientOperationId :: Maybe String
, InstanceDeleteResp -> Maybe [Char]
operationType :: Maybe String
, InstanceDeleteResp -> Maybe [Char]
targetLink :: Maybe String
, InstanceDeleteResp -> Maybe [Char]
targetId :: Maybe String
, InstanceDeleteResp -> Maybe [Char]
status :: Maybe String
, InstanceDeleteResp -> Maybe [Char]
statusMessage :: Maybe String
, InstanceDeleteResp -> Maybe [Char]
user :: Maybe String
, InstanceDeleteResp -> Maybe Int
progress :: Maybe Int
, InstanceDeleteResp -> Maybe [Char]
insertTime :: Maybe String
, InstanceDeleteResp -> Maybe [Char]
startTime :: Maybe String
, InstanceDeleteResp -> Maybe [Char]
endTime :: Maybe String
, InstanceDeleteResp -> Maybe Error_
error_ :: Maybe Error_
, InstanceDeleteResp -> Maybe [Warning]
warnings :: Maybe [Warning]
, InstanceDeleteResp -> Maybe Int
httpErrorStatusCode :: Maybe Int
, InstanceDeleteResp -> Maybe [Char]
httpErrorMessage :: Maybe String
, InstanceDeleteResp -> Maybe [Char]
selfLink :: Maybe String
, InstanceDeleteResp -> Maybe [Char]
region :: Maybe String
, InstanceDeleteResp -> Maybe [Char]
description :: Maybe String
, InstanceDeleteResp -> Maybe [Char]
operationGroupId :: Maybe String
}
deriving (Int -> InstanceDeleteResp -> ShowS
[InstanceDeleteResp] -> ShowS
InstanceDeleteResp -> [Char]
(Int -> InstanceDeleteResp -> ShowS)
-> (InstanceDeleteResp -> [Char])
-> ([InstanceDeleteResp] -> ShowS)
-> Show InstanceDeleteResp
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> InstanceDeleteResp -> ShowS
showsPrec :: Int -> InstanceDeleteResp -> ShowS
$cshow :: InstanceDeleteResp -> [Char]
show :: InstanceDeleteResp -> [Char]
$cshowList :: [InstanceDeleteResp] -> ShowS
showList :: [InstanceDeleteResp] -> ShowS
Show, InstanceDeleteResp -> InstanceDeleteResp -> Bool
(InstanceDeleteResp -> InstanceDeleteResp -> Bool)
-> (InstanceDeleteResp -> InstanceDeleteResp -> Bool)
-> Eq InstanceDeleteResp
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: InstanceDeleteResp -> InstanceDeleteResp -> Bool
== :: InstanceDeleteResp -> InstanceDeleteResp -> Bool
$c/= :: InstanceDeleteResp -> InstanceDeleteResp -> Bool
/= :: InstanceDeleteResp -> InstanceDeleteResp -> Bool
Eq)
instance FromJSON InstanceDeleteResp where
parseJSON :: Value -> Parser InstanceDeleteResp
parseJSON = [Char]
-> (Object -> Parser InstanceDeleteResp)
-> Value
-> Parser InstanceDeleteResp
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"InstanceDeleteResp" ((Object -> Parser InstanceDeleteResp)
-> Value -> Parser InstanceDeleteResp)
-> (Object -> Parser InstanceDeleteResp)
-> Value
-> Parser InstanceDeleteResp
forall a b. (a -> b) -> a -> b
$ \Object
o ->
Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp
InstanceDeleteResp
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
-> Parser (Maybe [Char])
-> Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"kind"
Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
-> Parser (Maybe [Char])
-> Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"id"
Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
-> Parser (Maybe [Char])
-> Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"creationTimestamp"
Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
-> Parser (Maybe [Char])
-> Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"name"
Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
-> Parser (Maybe [Char])
-> Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"zone"
Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
-> Parser (Maybe [Char])
-> Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"clientOperationId"
Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
-> Parser (Maybe [Char])
-> Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"operationType"
Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
-> Parser (Maybe [Char])
-> Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"targetLink"
Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
-> Parser (Maybe [Char])
-> Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"targetId"
Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
-> Parser (Maybe [Char])
-> Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"status"
Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
-> Parser (Maybe [Char])
-> Parser
(Maybe [Char]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"statusMessage"
Parser
(Maybe [Char]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
-> Parser (Maybe [Char])
-> Parser
(Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"user"
Parser
(Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
-> Parser (Maybe Int)
-> Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"progress"
Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
-> Parser (Maybe [Char])
-> Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"insertTime"
Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
-> Parser (Maybe [Char])
-> Parser
(Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"startTime"
Parser
(Maybe [Char]
-> Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
-> Parser (Maybe [Char])
-> Parser
(Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"endTime"
Parser
(Maybe Error_
-> Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
-> Parser (Maybe Error_)
-> Parser
(Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Error_)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"error"
Parser
(Maybe [Warning]
-> Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
-> Parser (Maybe [Warning])
-> Parser
(Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Warning])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"warnings"
Parser
(Maybe Int
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
-> Parser (Maybe Int)
-> Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"httpErrorStatusCode"
Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
-> Parser (Maybe [Char])
-> Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"httpErrorMessage"
Parser
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> InstanceDeleteResp)
-> Parser (Maybe [Char])
-> Parser
(Maybe [Char]
-> Maybe [Char] -> Maybe [Char] -> InstanceDeleteResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"selfLink"
Parser
(Maybe [Char]
-> Maybe [Char] -> Maybe [Char] -> InstanceDeleteResp)
-> Parser (Maybe [Char])
-> Parser (Maybe [Char] -> Maybe [Char] -> InstanceDeleteResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"region"
Parser (Maybe [Char] -> Maybe [Char] -> InstanceDeleteResp)
-> Parser (Maybe [Char])
-> Parser (Maybe [Char] -> InstanceDeleteResp)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"description"
Parser (Maybe [Char] -> InstanceDeleteResp)
-> Parser (Maybe [Char]) -> Parser InstanceDeleteResp
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"operationGroupId"
instance ToJSON InstanceDeleteResp where
toJSON :: InstanceDeleteResp -> Value
toJSON InstanceDeleteResp {Maybe Int
Maybe [Char]
Maybe [Warning]
Maybe Error_
$sel:kind:InstanceDeleteResp :: InstanceDeleteResp -> Maybe [Char]
$sel:id_:InstanceDeleteResp :: InstanceDeleteResp -> Maybe [Char]
$sel:creationTimestamp:InstanceDeleteResp :: InstanceDeleteResp -> Maybe [Char]
$sel:name:InstanceDeleteResp :: InstanceDeleteResp -> Maybe [Char]
$sel:zone:InstanceDeleteResp :: InstanceDeleteResp -> Maybe [Char]
$sel:clientOperationId:InstanceDeleteResp :: InstanceDeleteResp -> Maybe [Char]
$sel:operationType:InstanceDeleteResp :: InstanceDeleteResp -> Maybe [Char]
$sel:targetLink:InstanceDeleteResp :: InstanceDeleteResp -> Maybe [Char]
$sel:targetId:InstanceDeleteResp :: InstanceDeleteResp -> Maybe [Char]
$sel:status:InstanceDeleteResp :: InstanceDeleteResp -> Maybe [Char]
$sel:statusMessage:InstanceDeleteResp :: InstanceDeleteResp -> Maybe [Char]
$sel:user:InstanceDeleteResp :: InstanceDeleteResp -> Maybe [Char]
$sel:progress:InstanceDeleteResp :: InstanceDeleteResp -> Maybe Int
$sel:insertTime:InstanceDeleteResp :: InstanceDeleteResp -> Maybe [Char]
$sel:startTime:InstanceDeleteResp :: InstanceDeleteResp -> Maybe [Char]
$sel:endTime:InstanceDeleteResp :: InstanceDeleteResp -> Maybe [Char]
$sel:error_:InstanceDeleteResp :: InstanceDeleteResp -> Maybe Error_
$sel:warnings:InstanceDeleteResp :: InstanceDeleteResp -> Maybe [Warning]
$sel:httpErrorStatusCode:InstanceDeleteResp :: InstanceDeleteResp -> Maybe Int
$sel:httpErrorMessage:InstanceDeleteResp :: InstanceDeleteResp -> Maybe [Char]
$sel:selfLink:InstanceDeleteResp :: InstanceDeleteResp -> Maybe [Char]
$sel:region:InstanceDeleteResp :: InstanceDeleteResp -> Maybe [Char]
$sel:description:InstanceDeleteResp :: InstanceDeleteResp -> Maybe [Char]
$sel:operationGroupId:InstanceDeleteResp :: InstanceDeleteResp -> Maybe [Char]
kind :: Maybe [Char]
id_ :: Maybe [Char]
creationTimestamp :: Maybe [Char]
name :: Maybe [Char]
zone :: Maybe [Char]
clientOperationId :: Maybe [Char]
operationType :: Maybe [Char]
targetLink :: Maybe [Char]
targetId :: Maybe [Char]
status :: Maybe [Char]
statusMessage :: Maybe [Char]
user :: Maybe [Char]
progress :: Maybe Int
insertTime :: Maybe [Char]
startTime :: Maybe [Char]
endTime :: Maybe [Char]
error_ :: Maybe Error_
warnings :: Maybe [Warning]
httpErrorStatusCode :: Maybe Int
httpErrorMessage :: Maybe [Char]
selfLink :: Maybe [Char]
region :: Maybe [Char]
description :: Maybe [Char]
operationGroupId :: Maybe [Char]
..} =
[Pair] -> Value
object ([Pair] -> Value) -> [Pair] -> Value
forall a b. (a -> b) -> a -> b
$
[Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
catMaybes
[ (Key
"kind" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
kind
, (Key
"id" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
id_
, (Key
"creationTimestamp" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
creationTimestamp
, (Key
"name" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
name
, (Key
"zone" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
zone
, (Key
"clientOperationId" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
clientOperationId
, (Key
"operationType" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
operationType
, (Key
"targetLink" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
targetLink
, (Key
"targetId" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
targetId
, (Key
"status" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
status
, (Key
"statusMessage" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
statusMessage
, (Key
"user" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
user
, (Key
"progress" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Int -> Pair) -> Maybe Int -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe Int
progress
, (Key
"insertTime" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
insertTime
, (Key
"startTime" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
startTime
, (Key
"endTime" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
endTime
, (Key
"error" Key -> Error_ -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Error_ -> Pair) -> Maybe Error_ -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe Error_
error_
, (Key
"warnings" Key -> [Warning] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Warning] -> Pair) -> Maybe [Warning] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Warning]
warnings
, (Key
"httpErrorStatusCode" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Int -> Pair) -> Maybe Int -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe Int
httpErrorStatusCode
, (Key
"httpErrorMessage" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
httpErrorMessage
, (Key
"selfLink" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
selfLink
, (Key
"region" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
region
, (Key
"description" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
description
, (Key
"operationGroupId" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
operationGroupId
]
data Error_ = Error_
{ Error_ -> Maybe [ErrorDetail]
errors :: Maybe [ErrorDetail]
}
deriving (Int -> Error_ -> ShowS
[Error_] -> ShowS
Error_ -> [Char]
(Int -> Error_ -> ShowS)
-> (Error_ -> [Char]) -> ([Error_] -> ShowS) -> Show Error_
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Error_ -> ShowS
showsPrec :: Int -> Error_ -> ShowS
$cshow :: Error_ -> [Char]
show :: Error_ -> [Char]
$cshowList :: [Error_] -> ShowS
showList :: [Error_] -> ShowS
Show, Error_ -> Error_ -> Bool
(Error_ -> Error_ -> Bool)
-> (Error_ -> Error_ -> Bool) -> Eq Error_
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Error_ -> Error_ -> Bool
== :: Error_ -> Error_ -> Bool
$c/= :: Error_ -> Error_ -> Bool
/= :: Error_ -> Error_ -> Bool
Eq)
instance FromJSON Error_ where
parseJSON :: Value -> Parser Error_
parseJSON = [Char] -> (Object -> Parser Error_) -> Value -> Parser Error_
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"Error" ((Object -> Parser Error_) -> Value -> Parser Error_)
-> (Object -> Parser Error_) -> Value -> Parser Error_
forall a b. (a -> b) -> a -> b
$ \Object
o -> Maybe [ErrorDetail] -> Error_
Error_ (Maybe [ErrorDetail] -> Error_)
-> Parser (Maybe [ErrorDetail]) -> Parser Error_
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser (Maybe [ErrorDetail])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"errors"
instance ToJSON Error_ where
toJSON :: Error_ -> Value
toJSON Error_
e = [Pair] -> Value
object ([Pair] -> Value) -> [Pair] -> Value
forall a b. (a -> b) -> a -> b
$ [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
catMaybes [(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] -> Pair) -> Maybe [ErrorDetail] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Error_ -> Maybe [ErrorDetail]
errors Error_
e]
data ErrorDetail = ErrorDetail
{ ErrorDetail -> Maybe [Char]
code :: Maybe String
, ErrorDetail -> Maybe [Char]
location :: Maybe String
, ErrorDetail -> Maybe [Char]
message :: Maybe String
, ErrorDetail -> Maybe [DetailedError]
errorDetails :: Maybe [DetailedError]
}
deriving (Int -> ErrorDetail -> ShowS
[ErrorDetail] -> ShowS
ErrorDetail -> [Char]
(Int -> ErrorDetail -> ShowS)
-> (ErrorDetail -> [Char])
-> ([ErrorDetail] -> ShowS)
-> Show ErrorDetail
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ErrorDetail -> ShowS
showsPrec :: Int -> ErrorDetail -> ShowS
$cshow :: ErrorDetail -> [Char]
show :: ErrorDetail -> [Char]
$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)
instance FromJSON ErrorDetail where
parseJSON :: Value -> Parser ErrorDetail
parseJSON = [Char]
-> (Object -> Parser ErrorDetail) -> Value -> Parser ErrorDetail
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"ErrorDetail" ((Object -> Parser ErrorDetail) -> Value -> Parser ErrorDetail)
-> (Object -> Parser ErrorDetail) -> Value -> Parser ErrorDetail
forall a b. (a -> b) -> a -> b
$ \Object
o ->
Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [DetailedError]
-> ErrorDetail
ErrorDetail
(Maybe [Char]
-> Maybe [Char]
-> Maybe [Char]
-> Maybe [DetailedError]
-> ErrorDetail)
-> Parser (Maybe [Char])
-> Parser
(Maybe [Char]
-> Maybe [Char] -> Maybe [DetailedError] -> ErrorDetail)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"code"
Parser
(Maybe [Char]
-> Maybe [Char] -> Maybe [DetailedError] -> ErrorDetail)
-> Parser (Maybe [Char])
-> Parser (Maybe [Char] -> Maybe [DetailedError] -> 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
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"location"
Parser (Maybe [Char] -> Maybe [DetailedError] -> ErrorDetail)
-> Parser (Maybe [Char])
-> Parser (Maybe [DetailedError] -> 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
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"message"
Parser (Maybe [DetailedError] -> ErrorDetail)
-> Parser (Maybe [DetailedError]) -> 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
o Object -> Key -> Parser (Maybe [DetailedError])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"errorDetails"
instance ToJSON ErrorDetail where
toJSON :: ErrorDetail -> Value
toJSON ErrorDetail {Maybe [Char]
Maybe [DetailedError]
$sel:code:ErrorDetail :: ErrorDetail -> Maybe [Char]
$sel:location:ErrorDetail :: ErrorDetail -> Maybe [Char]
$sel:message:ErrorDetail :: ErrorDetail -> Maybe [Char]
$sel:errorDetails:ErrorDetail :: ErrorDetail -> Maybe [DetailedError]
code :: Maybe [Char]
location :: Maybe [Char]
message :: Maybe [Char]
errorDetails :: Maybe [DetailedError]
..} =
[Pair] -> Value
object ([Pair] -> Value) -> [Pair] -> Value
forall a b. (a -> b) -> a -> b
$
[Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
catMaybes
[ (Key
"code" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
code
, (Key
"location" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
location
, (Key
"message" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
message
, (Key
"errorDetails" Key -> [DetailedError] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([DetailedError] -> Pair) -> Maybe [DetailedError] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [DetailedError]
errorDetails
]
data DetailedError = DetailedError
{ DetailedError -> Maybe ErrorInfo
errorInfo :: Maybe ErrorInfo
, DetailedError -> Maybe QuotaInfo
quotaInfo :: Maybe QuotaInfo
, DetailedError -> Maybe Help
help :: Maybe Help
, DetailedError -> Maybe LocalizedMessage
localizedMessage :: Maybe LocalizedMessage
}
deriving (Int -> DetailedError -> ShowS
[DetailedError] -> ShowS
DetailedError -> [Char]
(Int -> DetailedError -> ShowS)
-> (DetailedError -> [Char])
-> ([DetailedError] -> ShowS)
-> Show DetailedError
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DetailedError -> ShowS
showsPrec :: Int -> DetailedError -> ShowS
$cshow :: DetailedError -> [Char]
show :: DetailedError -> [Char]
$cshowList :: [DetailedError] -> ShowS
showList :: [DetailedError] -> ShowS
Show, DetailedError -> DetailedError -> Bool
(DetailedError -> DetailedError -> Bool)
-> (DetailedError -> DetailedError -> Bool) -> Eq DetailedError
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DetailedError -> DetailedError -> Bool
== :: DetailedError -> DetailedError -> Bool
$c/= :: DetailedError -> DetailedError -> Bool
/= :: DetailedError -> DetailedError -> Bool
Eq)
instance FromJSON DetailedError where
parseJSON :: Value -> Parser DetailedError
parseJSON = [Char]
-> (Object -> Parser DetailedError)
-> Value
-> Parser DetailedError
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"DetailedError" ((Object -> Parser DetailedError) -> Value -> Parser DetailedError)
-> (Object -> Parser DetailedError)
-> Value
-> Parser DetailedError
forall a b. (a -> b) -> a -> b
$ \Object
o ->
Maybe ErrorInfo
-> Maybe QuotaInfo
-> Maybe Help
-> Maybe LocalizedMessage
-> DetailedError
DetailedError
(Maybe ErrorInfo
-> Maybe QuotaInfo
-> Maybe Help
-> Maybe LocalizedMessage
-> DetailedError)
-> Parser (Maybe ErrorInfo)
-> Parser
(Maybe QuotaInfo
-> Maybe Help -> Maybe LocalizedMessage -> DetailedError)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser (Maybe ErrorInfo)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"errorInfo"
Parser
(Maybe QuotaInfo
-> Maybe Help -> Maybe LocalizedMessage -> DetailedError)
-> Parser (Maybe QuotaInfo)
-> Parser (Maybe Help -> Maybe LocalizedMessage -> DetailedError)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe QuotaInfo)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"quotaInfo"
Parser (Maybe Help -> Maybe LocalizedMessage -> DetailedError)
-> Parser (Maybe Help)
-> Parser (Maybe LocalizedMessage -> DetailedError)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Help)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"help"
Parser (Maybe LocalizedMessage -> DetailedError)
-> Parser (Maybe LocalizedMessage) -> Parser DetailedError
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe LocalizedMessage)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"localizedMessage"
instance ToJSON DetailedError where
toJSON :: DetailedError -> Value
toJSON DetailedError
de =
[Pair] -> Value
object ([Pair] -> Value) -> [Pair] -> Value
forall a b. (a -> b) -> a -> b
$
[Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
catMaybes
[ (Key
"errorInfo" Key -> ErrorInfo -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (ErrorInfo -> Pair) -> Maybe ErrorInfo -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> DetailedError -> Maybe ErrorInfo
errorInfo DetailedError
de
, (Key
"quotaInfo" Key -> QuotaInfo -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (QuotaInfo -> Pair) -> Maybe QuotaInfo -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> DetailedError -> Maybe QuotaInfo
quotaInfo DetailedError
de
, (Key
"help" Key -> Help -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Help -> Pair) -> Maybe Help -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> DetailedError -> Maybe Help
help DetailedError
de
, (Key
"localizedMessage" Key -> LocalizedMessage -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (LocalizedMessage -> Pair) -> Maybe LocalizedMessage -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> DetailedError -> Maybe LocalizedMessage
localizedMessage DetailedError
de
]
data ErrorInfo = ErrorInfo
{ ErrorInfo -> Maybe [Char]
reason :: Maybe String
, ErrorInfo -> Maybe [Char]
domain :: Maybe String
}
deriving (Int -> ErrorInfo -> ShowS
[ErrorInfo] -> ShowS
ErrorInfo -> [Char]
(Int -> ErrorInfo -> ShowS)
-> (ErrorInfo -> [Char])
-> ([ErrorInfo] -> ShowS)
-> Show ErrorInfo
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ErrorInfo -> ShowS
showsPrec :: Int -> ErrorInfo -> ShowS
$cshow :: ErrorInfo -> [Char]
show :: ErrorInfo -> [Char]
$cshowList :: [ErrorInfo] -> ShowS
showList :: [ErrorInfo] -> ShowS
Show, ErrorInfo -> ErrorInfo -> Bool
(ErrorInfo -> ErrorInfo -> Bool)
-> (ErrorInfo -> ErrorInfo -> Bool) -> Eq ErrorInfo
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ErrorInfo -> ErrorInfo -> Bool
== :: ErrorInfo -> ErrorInfo -> Bool
$c/= :: ErrorInfo -> ErrorInfo -> Bool
/= :: ErrorInfo -> ErrorInfo -> Bool
Eq)
instance FromJSON ErrorInfo where
parseJSON :: Value -> Parser ErrorInfo
parseJSON = [Char] -> (Object -> Parser ErrorInfo) -> Value -> Parser ErrorInfo
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"ErrorInfo" ((Object -> Parser ErrorInfo) -> Value -> Parser ErrorInfo)
-> (Object -> Parser ErrorInfo) -> Value -> Parser ErrorInfo
forall a b. (a -> b) -> a -> b
$ \Object
o ->
Maybe [Char] -> Maybe [Char] -> ErrorInfo
ErrorInfo
(Maybe [Char] -> Maybe [Char] -> ErrorInfo)
-> Parser (Maybe [Char]) -> Parser (Maybe [Char] -> ErrorInfo)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"reason"
Parser (Maybe [Char] -> ErrorInfo)
-> Parser (Maybe [Char]) -> Parser ErrorInfo
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"domain"
instance ToJSON ErrorInfo where
toJSON :: ErrorInfo -> Value
toJSON ErrorInfo
ei =
[Pair] -> Value
object ([Pair] -> Value) -> [Pair] -> Value
forall a b. (a -> b) -> a -> b
$
[Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
catMaybes
[ (Key
"reason" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ErrorInfo -> Maybe [Char]
reason ErrorInfo
ei
, (Key
"domain" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ErrorInfo -> Maybe [Char]
domain ErrorInfo
ei
]
data QuotaInfo = QuotaInfo
{ QuotaInfo -> Maybe [Char]
metricName :: Maybe String
, QuotaInfo -> Maybe [Char]
limitName :: Maybe String
, QuotaInfo -> Maybe Double
limit :: Maybe Double
, QuotaInfo -> Maybe Double
futureLimit :: Maybe Double
, QuotaInfo -> Maybe [Char]
rolloutStatus :: Maybe String
}
deriving (Int -> QuotaInfo -> ShowS
[QuotaInfo] -> ShowS
QuotaInfo -> [Char]
(Int -> QuotaInfo -> ShowS)
-> (QuotaInfo -> [Char])
-> ([QuotaInfo] -> ShowS)
-> Show QuotaInfo
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> QuotaInfo -> ShowS
showsPrec :: Int -> QuotaInfo -> ShowS
$cshow :: QuotaInfo -> [Char]
show :: QuotaInfo -> [Char]
$cshowList :: [QuotaInfo] -> ShowS
showList :: [QuotaInfo] -> ShowS
Show, QuotaInfo -> QuotaInfo -> Bool
(QuotaInfo -> QuotaInfo -> Bool)
-> (QuotaInfo -> QuotaInfo -> Bool) -> Eq QuotaInfo
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: QuotaInfo -> QuotaInfo -> Bool
== :: QuotaInfo -> QuotaInfo -> Bool
$c/= :: QuotaInfo -> QuotaInfo -> Bool
/= :: QuotaInfo -> QuotaInfo -> Bool
Eq)
instance FromJSON QuotaInfo where
parseJSON :: Value -> Parser QuotaInfo
parseJSON = [Char] -> (Object -> Parser QuotaInfo) -> Value -> Parser QuotaInfo
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"QuotaInfo" ((Object -> Parser QuotaInfo) -> Value -> Parser QuotaInfo)
-> (Object -> Parser QuotaInfo) -> Value -> Parser QuotaInfo
forall a b. (a -> b) -> a -> b
$ \Object
o ->
Maybe [Char]
-> Maybe [Char]
-> Maybe Double
-> Maybe Double
-> Maybe [Char]
-> QuotaInfo
QuotaInfo
(Maybe [Char]
-> Maybe [Char]
-> Maybe Double
-> Maybe Double
-> Maybe [Char]
-> QuotaInfo)
-> Parser (Maybe [Char])
-> Parser
(Maybe [Char]
-> Maybe Double -> Maybe Double -> Maybe [Char] -> QuotaInfo)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"metricName"
Parser
(Maybe [Char]
-> Maybe Double -> Maybe Double -> Maybe [Char] -> QuotaInfo)
-> Parser (Maybe [Char])
-> Parser
(Maybe Double -> Maybe Double -> Maybe [Char] -> QuotaInfo)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"limitName"
Parser (Maybe Double -> Maybe Double -> Maybe [Char] -> QuotaInfo)
-> Parser (Maybe Double)
-> Parser (Maybe Double -> Maybe [Char] -> QuotaInfo)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Double)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"limit"
Parser (Maybe Double -> Maybe [Char] -> QuotaInfo)
-> Parser (Maybe Double) -> Parser (Maybe [Char] -> QuotaInfo)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Double)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"futureLimit"
Parser (Maybe [Char] -> QuotaInfo)
-> Parser (Maybe [Char]) -> Parser QuotaInfo
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"rolloutStatus"
instance ToJSON QuotaInfo where
toJSON :: QuotaInfo -> Value
toJSON QuotaInfo
qi =
[Pair] -> Value
object ([Pair] -> Value) -> [Pair] -> Value
forall a b. (a -> b) -> a -> b
$
[Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
catMaybes
[ (Key
"metricName" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> QuotaInfo -> Maybe [Char]
metricName QuotaInfo
qi
, (Key
"limitName" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> QuotaInfo -> Maybe [Char]
limitName QuotaInfo
qi
, (Key
"limit" Key -> Double -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Double -> Pair) -> Maybe Double -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> QuotaInfo -> Maybe Double
limit QuotaInfo
qi
, (Key
"futureLimit" Key -> Double -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Double -> Pair) -> Maybe Double -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> QuotaInfo -> Maybe Double
futureLimit QuotaInfo
qi
, (Key
"rolloutStatus" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> QuotaInfo -> Maybe [Char]
rolloutStatus QuotaInfo
qi
]
data Help = Help
{ Help -> Maybe [Link]
links :: Maybe [Link]
}
deriving (Int -> Help -> ShowS
[Help] -> ShowS
Help -> [Char]
(Int -> Help -> ShowS)
-> (Help -> [Char]) -> ([Help] -> ShowS) -> Show Help
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Help -> ShowS
showsPrec :: Int -> Help -> ShowS
$cshow :: Help -> [Char]
show :: Help -> [Char]
$cshowList :: [Help] -> ShowS
showList :: [Help] -> ShowS
Show, Help -> Help -> Bool
(Help -> Help -> Bool) -> (Help -> Help -> Bool) -> Eq Help
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Help -> Help -> Bool
== :: Help -> Help -> Bool
$c/= :: Help -> Help -> Bool
/= :: Help -> Help -> Bool
Eq)
instance FromJSON Help where
parseJSON :: Value -> Parser Help
parseJSON = [Char] -> (Object -> Parser Help) -> Value -> Parser Help
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"Help" ((Object -> Parser Help) -> Value -> Parser Help)
-> (Object -> Parser Help) -> Value -> Parser Help
forall a b. (a -> b) -> a -> b
$ \Object
o -> Maybe [Link] -> Help
Help (Maybe [Link] -> Help) -> Parser (Maybe [Link]) -> Parser Help
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser (Maybe [Link])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"links"
instance ToJSON Help where
toJSON :: Help -> Value
toJSON Help
h = [Pair] -> Value
object ([Pair] -> Value) -> [Pair] -> Value
forall a b. (a -> b) -> a -> b
$ [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
catMaybes [(Key
"links" Key -> [Link] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Link] -> Pair) -> Maybe [Link] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Help -> Maybe [Link]
links Help
h]
data Link = Link
{ Link -> Maybe [Char]
description :: Maybe String
, Link -> Maybe [Char]
url :: Maybe String
}
deriving (Int -> Link -> ShowS
[Link] -> ShowS
Link -> [Char]
(Int -> Link -> ShowS)
-> (Link -> [Char]) -> ([Link] -> ShowS) -> Show Link
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Link -> ShowS
showsPrec :: Int -> Link -> ShowS
$cshow :: Link -> [Char]
show :: Link -> [Char]
$cshowList :: [Link] -> ShowS
showList :: [Link] -> ShowS
Show, Link -> Link -> Bool
(Link -> Link -> Bool) -> (Link -> Link -> Bool) -> Eq Link
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Link -> Link -> Bool
== :: Link -> Link -> Bool
$c/= :: Link -> Link -> Bool
/= :: Link -> Link -> Bool
Eq)
instance FromJSON Link where
parseJSON :: Value -> Parser Link
parseJSON = [Char] -> (Object -> Parser Link) -> Value -> Parser Link
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"Link" ((Object -> Parser Link) -> Value -> Parser Link)
-> (Object -> Parser Link) -> Value -> Parser Link
forall a b. (a -> b) -> a -> b
$ \Object
o ->
Maybe [Char] -> Maybe [Char] -> Link
Link
(Maybe [Char] -> Maybe [Char] -> Link)
-> Parser (Maybe [Char]) -> Parser (Maybe [Char] -> Link)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"description"
Parser (Maybe [Char] -> Link)
-> Parser (Maybe [Char]) -> Parser Link
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"url"
instance ToJSON Link where
toJSON :: Link -> Value
toJSON Link {Maybe [Char]
$sel:description:Link :: Link -> Maybe [Char]
$sel:url:Link :: Link -> Maybe [Char]
description :: Maybe [Char]
url :: Maybe [Char]
..} =
[Pair] -> Value
object ([Pair] -> Value) -> [Pair] -> Value
forall a b. (a -> b) -> a -> b
$
[Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
catMaybes
[ (Key
"description" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
description
, (Key
"url" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
url
]
data LocalizedMessage = LocalizedMessage
{ LocalizedMessage -> Maybe [Char]
locale :: Maybe String
, LocalizedMessage -> Maybe [Char]
message :: Maybe String
}
deriving (Int -> LocalizedMessage -> ShowS
[LocalizedMessage] -> ShowS
LocalizedMessage -> [Char]
(Int -> LocalizedMessage -> ShowS)
-> (LocalizedMessage -> [Char])
-> ([LocalizedMessage] -> ShowS)
-> Show LocalizedMessage
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> LocalizedMessage -> ShowS
showsPrec :: Int -> LocalizedMessage -> ShowS
$cshow :: LocalizedMessage -> [Char]
show :: LocalizedMessage -> [Char]
$cshowList :: [LocalizedMessage] -> ShowS
showList :: [LocalizedMessage] -> ShowS
Show, LocalizedMessage -> LocalizedMessage -> Bool
(LocalizedMessage -> LocalizedMessage -> Bool)
-> (LocalizedMessage -> LocalizedMessage -> Bool)
-> Eq LocalizedMessage
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: LocalizedMessage -> LocalizedMessage -> Bool
== :: LocalizedMessage -> LocalizedMessage -> Bool
$c/= :: LocalizedMessage -> LocalizedMessage -> Bool
/= :: LocalizedMessage -> LocalizedMessage -> Bool
Eq)
instance FromJSON LocalizedMessage where
parseJSON :: Value -> Parser LocalizedMessage
parseJSON = [Char]
-> (Object -> Parser LocalizedMessage)
-> Value
-> Parser LocalizedMessage
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"LocalizedMessage" ((Object -> Parser LocalizedMessage)
-> Value -> Parser LocalizedMessage)
-> (Object -> Parser LocalizedMessage)
-> Value
-> Parser LocalizedMessage
forall a b. (a -> b) -> a -> b
$ \Object
o ->
Maybe [Char] -> Maybe [Char] -> LocalizedMessage
LocalizedMessage
(Maybe [Char] -> Maybe [Char] -> LocalizedMessage)
-> Parser (Maybe [Char])
-> Parser (Maybe [Char] -> LocalizedMessage)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"locale"
Parser (Maybe [Char] -> LocalizedMessage)
-> Parser (Maybe [Char]) -> Parser LocalizedMessage
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [Char])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"message"
instance ToJSON LocalizedMessage where
toJSON :: LocalizedMessage -> Value
toJSON LocalizedMessage {Maybe [Char]
$sel:locale:LocalizedMessage :: LocalizedMessage -> Maybe [Char]
$sel:message:LocalizedMessage :: LocalizedMessage -> Maybe [Char]
locale :: Maybe [Char]
message :: Maybe [Char]
..} =
[Pair] -> Value
object ([Pair] -> Value) -> [Pair] -> Value
forall a b. (a -> b) -> a -> b
$
[Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
catMaybes
[ (Key
"locale" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
locale
, (Key
"message" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) ([Char] -> Pair) -> Maybe [Char] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
message
]
data InstanceStartResponse = InstanceStartResponse
{ InstanceStartResponse -> Maybe Text
kind :: Maybe Text
, InstanceStartResponse -> Maybe Text
id_ :: Maybe Text
, InstanceStartResponse -> Maybe Text
creationTimestamp :: Maybe Text
, InstanceStartResponse -> Maybe Text
name :: Maybe Text
, InstanceStartResponse -> Maybe Text
zone :: Maybe Text
, InstanceStartResponse -> Maybe Text
clientOperationId :: Maybe Text
, InstanceStartResponse -> Maybe Text
operationType :: Maybe Text
, InstanceStartResponse -> Maybe Text
targetLink :: Maybe Text
, InstanceStartResponse -> Maybe Text
targetId :: Maybe Text
, InstanceStartResponse -> Maybe Text
status :: Maybe Text
, InstanceStartResponse -> Maybe Text
statusMessage :: Maybe Text
, InstanceStartResponse -> Maybe Text
user :: Maybe Text
}
deriving (Int -> InstanceStartResponse -> ShowS
[InstanceStartResponse] -> ShowS
InstanceStartResponse -> [Char]
(Int -> InstanceStartResponse -> ShowS)
-> (InstanceStartResponse -> [Char])
-> ([InstanceStartResponse] -> ShowS)
-> Show InstanceStartResponse
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> InstanceStartResponse -> ShowS
showsPrec :: Int -> InstanceStartResponse -> ShowS
$cshow :: InstanceStartResponse -> [Char]
show :: InstanceStartResponse -> [Char]
$cshowList :: [InstanceStartResponse] -> ShowS
showList :: [InstanceStartResponse] -> ShowS
Show, InstanceStartResponse -> InstanceStartResponse -> Bool
(InstanceStartResponse -> InstanceStartResponse -> Bool)
-> (InstanceStartResponse -> InstanceStartResponse -> Bool)
-> Eq InstanceStartResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: InstanceStartResponse -> InstanceStartResponse -> Bool
== :: InstanceStartResponse -> InstanceStartResponse -> Bool
$c/= :: InstanceStartResponse -> InstanceStartResponse -> Bool
/= :: InstanceStartResponse -> InstanceStartResponse -> Bool
Eq)
instance FromJSON InstanceStartResponse where
parseJSON :: Value -> Parser InstanceStartResponse
parseJSON = [Char]
-> (Object -> Parser InstanceStartResponse)
-> Value
-> Parser InstanceStartResponse
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"InstanceStartResponse" ((Object -> Parser InstanceStartResponse)
-> Value -> Parser InstanceStartResponse)
-> (Object -> Parser InstanceStartResponse)
-> Value
-> Parser InstanceStartResponse
forall a b. (a -> b) -> a -> b
$ \Object
o ->
Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> InstanceStartResponse
InstanceStartResponse
(Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> InstanceStartResponse)
-> Parser (Maybe Text)
-> Parser
(Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> InstanceStartResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"kind"
Parser
(Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> InstanceStartResponse)
-> Parser (Maybe Text)
-> Parser
(Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> InstanceStartResponse)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"id"
Parser
(Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> InstanceStartResponse)
-> Parser (Maybe Text)
-> Parser
(Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> InstanceStartResponse)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"creationTimestamp"
Parser
(Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> InstanceStartResponse)
-> Parser (Maybe Text)
-> Parser
(Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> InstanceStartResponse)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"name"
Parser
(Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> InstanceStartResponse)
-> Parser (Maybe Text)
-> Parser
(Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> InstanceStartResponse)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"zone"
Parser
(Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> InstanceStartResponse)
-> Parser (Maybe Text)
-> Parser
(Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> InstanceStartResponse)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"clientOperationId"
Parser
(Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> InstanceStartResponse)
-> Parser (Maybe Text)
-> Parser
(Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> InstanceStartResponse)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"operationType"
Parser
(Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> InstanceStartResponse)
-> Parser (Maybe Text)
-> Parser
(Maybe Text
-> Maybe Text -> Maybe Text -> Maybe Text -> InstanceStartResponse)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"targetLink"
Parser
(Maybe Text
-> Maybe Text -> Maybe Text -> Maybe Text -> InstanceStartResponse)
-> Parser (Maybe Text)
-> Parser
(Maybe Text -> Maybe Text -> Maybe Text -> InstanceStartResponse)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"targetId"
Parser
(Maybe Text -> Maybe Text -> Maybe Text -> InstanceStartResponse)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> Maybe Text -> InstanceStartResponse)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"status"
Parser (Maybe Text -> Maybe Text -> InstanceStartResponse)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> InstanceStartResponse)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"statusMessage"
Parser (Maybe Text -> InstanceStartResponse)
-> Parser (Maybe Text) -> Parser InstanceStartResponse
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"user"
instance ToJSON InstanceStartResponse where
toJSON :: InstanceStartResponse -> Value
toJSON InstanceStartResponse {Maybe Text
$sel:kind:InstanceStartResponse :: InstanceStartResponse -> Maybe Text
$sel:id_:InstanceStartResponse :: InstanceStartResponse -> Maybe Text
$sel:creationTimestamp:InstanceStartResponse :: InstanceStartResponse -> Maybe Text
$sel:name:InstanceStartResponse :: InstanceStartResponse -> Maybe Text
$sel:zone:InstanceStartResponse :: InstanceStartResponse -> Maybe Text
$sel:clientOperationId:InstanceStartResponse :: InstanceStartResponse -> Maybe Text
$sel:operationType:InstanceStartResponse :: InstanceStartResponse -> Maybe Text
$sel:targetLink:InstanceStartResponse :: InstanceStartResponse -> Maybe Text
$sel:targetId:InstanceStartResponse :: InstanceStartResponse -> Maybe Text
$sel:status:InstanceStartResponse :: InstanceStartResponse -> Maybe Text
$sel:statusMessage:InstanceStartResponse :: InstanceStartResponse -> Maybe Text
$sel:user:InstanceStartResponse :: InstanceStartResponse -> Maybe Text
kind :: Maybe Text
id_ :: Maybe Text
creationTimestamp :: Maybe Text
name :: Maybe Text
zone :: Maybe Text
clientOperationId :: Maybe Text
operationType :: Maybe Text
targetLink :: Maybe Text
targetId :: Maybe Text
status :: Maybe Text
statusMessage :: Maybe Text
user :: Maybe Text
..} =
[Pair] -> Value
object ([Pair] -> Value) -> [Pair] -> Value
forall a b. (a -> b) -> a -> b
$
[Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
catMaybes
[ (Key
"kind" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe Text
kind
, (Key
"id" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe Text
id_
, (Key
"creationTimestamp" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe Text
creationTimestamp
, (Key
"name" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe Text
name
, (Key
"zone" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe Text
zone
, (Key
"clientOperationId" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe Text
clientOperationId
, (Key
"operationType" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe Text
operationType
, (Key
"targetLink" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe Text
targetLink
, (Key
"targetId" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe Text
targetId
, (Key
"status" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe Text
status
, (Key
"statusMessage" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe Text
statusMessage
, (Key
"user" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe Text
user
]
data InsertInstanceOps = InsertInstanceOps
{ InsertInstanceOps -> [Char]
name :: String
, InsertInstanceOps -> [Char]
machineType :: String
, InsertInstanceOps -> Maybe [Disk]
disks :: Maybe [Disk]
, InsertInstanceOps -> Maybe [NetworkInterface]
networkInterfaces :: Maybe [NetworkInterface]
}
deriving (Int -> InsertInstanceOps -> ShowS
[InsertInstanceOps] -> ShowS
InsertInstanceOps -> [Char]
(Int -> InsertInstanceOps -> ShowS)
-> (InsertInstanceOps -> [Char])
-> ([InsertInstanceOps] -> ShowS)
-> Show InsertInstanceOps
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> InsertInstanceOps -> ShowS
showsPrec :: Int -> InsertInstanceOps -> ShowS
$cshow :: InsertInstanceOps -> [Char]
show :: InsertInstanceOps -> [Char]
$cshowList :: [InsertInstanceOps] -> ShowS
showList :: [InsertInstanceOps] -> ShowS
Show, InsertInstanceOps -> InsertInstanceOps -> Bool
(InsertInstanceOps -> InsertInstanceOps -> Bool)
-> (InsertInstanceOps -> InsertInstanceOps -> Bool)
-> Eq InsertInstanceOps
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: InsertInstanceOps -> InsertInstanceOps -> Bool
== :: InsertInstanceOps -> InsertInstanceOps -> Bool
$c/= :: InsertInstanceOps -> InsertInstanceOps -> Bool
/= :: InsertInstanceOps -> InsertInstanceOps -> Bool
Eq)
data NetworkInterface = NetworkInterface
{ NetworkInterface -> [Char]
network :: String
}
deriving (Int -> NetworkInterface -> ShowS
[NetworkInterface] -> ShowS
NetworkInterface -> [Char]
(Int -> NetworkInterface -> ShowS)
-> (NetworkInterface -> [Char])
-> ([NetworkInterface] -> ShowS)
-> Show NetworkInterface
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> NetworkInterface -> ShowS
showsPrec :: Int -> NetworkInterface -> ShowS
$cshow :: NetworkInterface -> [Char]
show :: NetworkInterface -> [Char]
$cshowList :: [NetworkInterface] -> ShowS
showList :: [NetworkInterface] -> ShowS
Show, NetworkInterface -> NetworkInterface -> Bool
(NetworkInterface -> NetworkInterface -> Bool)
-> (NetworkInterface -> NetworkInterface -> Bool)
-> Eq NetworkInterface
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: NetworkInterface -> NetworkInterface -> Bool
== :: NetworkInterface -> NetworkInterface -> Bool
$c/= :: NetworkInterface -> NetworkInterface -> Bool
/= :: NetworkInterface -> NetworkInterface -> Bool
Eq)
data InsertInstanceQuery = InsertInstanceQuery
{ InsertInstanceQuery -> Maybe [Char]
requestId :: Maybe String
, InsertInstanceQuery -> Maybe [Char]
sourceInstanceTemplate :: Maybe String
}
deriving (Int -> InsertInstanceQuery -> ShowS
[InsertInstanceQuery] -> ShowS
InsertInstanceQuery -> [Char]
(Int -> InsertInstanceQuery -> ShowS)
-> (InsertInstanceQuery -> [Char])
-> ([InsertInstanceQuery] -> ShowS)
-> Show InsertInstanceQuery
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> InsertInstanceQuery -> ShowS
showsPrec :: Int -> InsertInstanceQuery -> ShowS
$cshow :: InsertInstanceQuery -> [Char]
show :: InsertInstanceQuery -> [Char]
$cshowList :: [InsertInstanceQuery] -> ShowS
showList :: [InsertInstanceQuery] -> ShowS
Show, InsertInstanceQuery -> InsertInstanceQuery -> Bool
(InsertInstanceQuery -> InsertInstanceQuery -> Bool)
-> (InsertInstanceQuery -> InsertInstanceQuery -> Bool)
-> Eq InsertInstanceQuery
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: InsertInstanceQuery -> InsertInstanceQuery -> Bool
== :: InsertInstanceQuery -> InsertInstanceQuery -> Bool
$c/= :: InsertInstanceQuery -> InsertInstanceQuery -> Bool
/= :: InsertInstanceQuery -> InsertInstanceQuery -> Bool
Eq)
instance ToJSON InsertInstanceOps where
toJSON :: InsertInstanceOps -> Value
toJSON InsertInstanceOps {[Char]
Maybe [Disk]
Maybe [NetworkInterface]
$sel:name:InsertInstanceOps :: InsertInstanceOps -> [Char]
$sel:machineType:InsertInstanceOps :: InsertInstanceOps -> [Char]
$sel:disks:InsertInstanceOps :: InsertInstanceOps -> Maybe [Disk]
$sel:networkInterfaces:InsertInstanceOps :: InsertInstanceOps -> Maybe [NetworkInterface]
name :: [Char]
machineType :: [Char]
disks :: Maybe [Disk]
networkInterfaces :: Maybe [NetworkInterface]
..} =
[Pair] -> Value
object
[ Key
"name" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [Char]
name
, Key
"machineType" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [Char]
machineType
, Key
"disks" Key -> Maybe [Disk] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe [Disk]
disks
, Key
"networkInterfaces" Key -> Maybe [NetworkInterface] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe [NetworkInterface]
networkInterfaces
]
instance ToJSON NetworkInterface where
toJSON :: NetworkInterface -> Value
toJSON NetworkInterface
ni =
[Pair] -> Value
object
[ Key
"network" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= NetworkInterface -> [Char]
network NetworkInterface
ni
]
data Disk = Disk
{ Disk -> Bool
autoDelete :: Bool
, Disk -> Bool
boot :: Bool
, Disk -> [Char]
deviceName :: String
, Disk -> Maybe InitializeParams
initializeParams :: Maybe InitializeParams
, Disk -> [Char]
mode :: String
, Disk -> [Char]
type_ :: String
}
deriving (Int -> Disk -> ShowS
[Disk] -> ShowS
Disk -> [Char]
(Int -> Disk -> ShowS)
-> (Disk -> [Char]) -> ([Disk] -> ShowS) -> Show Disk
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Disk -> ShowS
showsPrec :: Int -> Disk -> ShowS
$cshow :: Disk -> [Char]
show :: Disk -> [Char]
$cshowList :: [Disk] -> ShowS
showList :: [Disk] -> ShowS
Show, Disk -> Disk -> Bool
(Disk -> Disk -> Bool) -> (Disk -> Disk -> Bool) -> Eq Disk
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Disk -> Disk -> Bool
== :: Disk -> Disk -> Bool
$c/= :: Disk -> Disk -> Bool
/= :: Disk -> Disk -> Bool
Eq)
data InitializeParams = InitializeParams
{ InitializeParams -> [Char]
diskSizeGb :: String
, InitializeParams -> [Char]
diskType :: String
, InitializeParams -> Map [Char] [Char]
labels :: Map.Map String String
, InitializeParams -> [Char]
sourceImage :: String
}
deriving (Int -> InitializeParams -> ShowS
[InitializeParams] -> ShowS
InitializeParams -> [Char]
(Int -> InitializeParams -> ShowS)
-> (InitializeParams -> [Char])
-> ([InitializeParams] -> ShowS)
-> Show InitializeParams
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> InitializeParams -> ShowS
showsPrec :: Int -> InitializeParams -> ShowS
$cshow :: InitializeParams -> [Char]
show :: InitializeParams -> [Char]
$cshowList :: [InitializeParams] -> ShowS
showList :: [InitializeParams] -> ShowS
Show, InitializeParams -> InitializeParams -> Bool
(InitializeParams -> InitializeParams -> Bool)
-> (InitializeParams -> InitializeParams -> Bool)
-> Eq InitializeParams
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: InitializeParams -> InitializeParams -> Bool
== :: InitializeParams -> InitializeParams -> Bool
$c/= :: InitializeParams -> InitializeParams -> Bool
/= :: InitializeParams -> InitializeParams -> Bool
Eq)
instance ToJSON Disk where
toJSON :: Disk -> Value
toJSON Disk{Bool
[Char]
Maybe InitializeParams
$sel:autoDelete:Disk :: Disk -> Bool
$sel:boot:Disk :: Disk -> Bool
$sel:deviceName:Disk :: Disk -> [Char]
$sel:initializeParams:Disk :: Disk -> Maybe InitializeParams
$sel:mode:Disk :: Disk -> [Char]
$sel:type_:Disk :: Disk -> [Char]
autoDelete :: Bool
boot :: Bool
deviceName :: [Char]
initializeParams :: Maybe InitializeParams
mode :: [Char]
type_ :: [Char]
..} = [Pair] -> Value
object
[ Key
"autoDelete" Key -> Bool -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Bool
autoDelete
, Key
"boot" Key -> Bool -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Bool
boot
, Key
"deviceName" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [Char]
deviceName
, Key
"initializeParams" Key -> Maybe InitializeParams -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe InitializeParams
initializeParams
, Key
"mode" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [Char]
mode
, Key
"type" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [Char]
type_
]
instance FromJSON Disk where
parseJSON :: Value -> Parser Disk
parseJSON = [Char] -> (Object -> Parser Disk) -> Value -> Parser Disk
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"Disk" ((Object -> Parser Disk) -> Value -> Parser Disk)
-> (Object -> Parser Disk) -> Value -> Parser Disk
forall a b. (a -> b) -> a -> b
$ \Object
v -> Bool
-> Bool
-> [Char]
-> Maybe InitializeParams
-> [Char]
-> [Char]
-> Disk
Disk
(Bool
-> Bool
-> [Char]
-> Maybe InitializeParams
-> [Char]
-> [Char]
-> Disk)
-> Parser Bool
-> Parser
(Bool
-> [Char] -> Maybe InitializeParams -> [Char] -> [Char] -> Disk)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
v Object -> Key -> Parser Bool
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"autoDelete"
Parser
(Bool
-> [Char] -> Maybe InitializeParams -> [Char] -> [Char] -> Disk)
-> Parser Bool
-> Parser
([Char] -> Maybe InitializeParams -> [Char] -> [Char] -> Disk)
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 Bool
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"boot"
Parser
([Char] -> Maybe InitializeParams -> [Char] -> [Char] -> Disk)
-> Parser [Char]
-> Parser (Maybe InitializeParams -> [Char] -> [Char] -> Disk)
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 [Char]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"deviceName"
Parser (Maybe InitializeParams -> [Char] -> [Char] -> Disk)
-> Parser (Maybe InitializeParams)
-> Parser ([Char] -> [Char] -> Disk)
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 InitializeParams)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"initializeParams"
Parser ([Char] -> [Char] -> Disk)
-> Parser [Char] -> Parser ([Char] -> Disk)
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 [Char]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"mode"
Parser ([Char] -> Disk) -> Parser [Char] -> Parser Disk
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 [Char]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"type"
instance ToJSON InitializeParams where
toJSON :: InitializeParams -> Value
toJSON InitializeParams{[Char]
Map [Char] [Char]
$sel:diskSizeGb:InitializeParams :: InitializeParams -> [Char]
$sel:diskType:InitializeParams :: InitializeParams -> [Char]
$sel:labels:InitializeParams :: InitializeParams -> Map [Char] [Char]
$sel:sourceImage:InitializeParams :: InitializeParams -> [Char]
diskSizeGb :: [Char]
diskType :: [Char]
labels :: Map [Char] [Char]
sourceImage :: [Char]
..} = [Pair] -> Value
object
[ Key
"diskSizeGb" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [Char]
diskSizeGb
, Key
"diskType" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [Char]
diskType
, Key
"labels" Key -> Map [Char] [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Map [Char] [Char]
labels
, Key
"sourceImage" Key -> [Char] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [Char]
sourceImage
]
instance FromJSON InitializeParams where
parseJSON :: Value -> Parser InitializeParams
parseJSON = [Char]
-> (Object -> Parser InitializeParams)
-> Value
-> Parser InitializeParams
forall a. [Char] -> (Object -> Parser a) -> Value -> Parser a
withObject [Char]
"InitializeParams" ((Object -> Parser InitializeParams)
-> Value -> Parser InitializeParams)
-> (Object -> Parser InitializeParams)
-> Value
-> Parser InitializeParams
forall a b. (a -> b) -> a -> b
$ \Object
v -> [Char] -> [Char] -> Map [Char] [Char] -> [Char] -> InitializeParams
InitializeParams
([Char]
-> [Char] -> Map [Char] [Char] -> [Char] -> InitializeParams)
-> Parser [Char]
-> Parser
([Char] -> Map [Char] [Char] -> [Char] -> InitializeParams)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
v Object -> Key -> Parser [Char]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"diskSizeGb"
Parser ([Char] -> Map [Char] [Char] -> [Char] -> InitializeParams)
-> Parser [Char]
-> Parser (Map [Char] [Char] -> [Char] -> InitializeParams)
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 [Char]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"diskType"
Parser (Map [Char] [Char] -> [Char] -> InitializeParams)
-> Parser (Map [Char] [Char])
-> Parser ([Char] -> InitializeParams)
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 (Map [Char] [Char])
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"labels"
Parser ([Char] -> InitializeParams)
-> Parser [Char] -> Parser InitializeParams
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 [Char]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sourceImage"
listInstances ::
String -> String -> Maybe ListInstancesQuery -> IO (Either String InstanceList)
listInstances :: [Char]
-> [Char]
-> Maybe ListInstancesQuery
-> IO (Either [Char] InstanceList)
listInstances [Char]
projectId [Char]
zone_ Maybe ListInstancesQuery
mbQuery = do
let queryParams :: [(ByteString, Maybe ByteString)]
queryParams = [(ByteString, Maybe ByteString)]
-> (ListInstancesQuery -> [(ByteString, Maybe ByteString)])
-> Maybe ListInstancesQuery
-> [(ByteString, Maybe ByteString)]
forall b a. b -> (a -> b) -> Maybe a -> b
maybe [] ListInstancesQuery -> [(ByteString, Maybe ByteString)]
toQueryList Maybe ListInstancesQuery
mbQuery
RequestOptions -> IO (Either [Char] InstanceList)
forall b. FromJSON b => RequestOptions -> IO (Either [Char] b)
doRequestJSON
RequestOptions
{ reqMethod :: RequestMethod
reqMethod = RequestMethod
GET
, reqUrl :: [Char]
reqUrl = [Char]
googleComputeUrl
, mbQueryParams :: Maybe [(ByteString, Maybe ByteString)]
mbQueryParams = [(ByteString, Maybe ByteString)]
-> Maybe [(ByteString, Maybe ByteString)]
forall a. a -> Maybe a
Just [(ByteString, Maybe ByteString)]
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 [Char]
mbReqPath = [Char] -> Maybe [Char]
forall a. a -> Maybe a
Just ([Char]
"/projects/" [Char] -> ShowS
forall a. Semigroup a => a -> a -> a
<> [Char]
projectId [Char] -> ShowS
forall a. Semigroup a => a -> a -> a
<> [Char]
"/zones/" [Char] -> ShowS
forall a. Semigroup a => a -> a -> a
<> [Char]
zone_ [Char] -> ShowS
forall a. Semigroup a => a -> a -> a
<> [Char]
"/instances")
}
where
toQueryList :: ListInstancesQuery -> [(BS.ByteString, Maybe BS.ByteString)]
toQueryList :: ListInstancesQuery -> [(ByteString, Maybe ByteString)]
toQueryList ListInstancesQuery
q =
[Maybe (ByteString, Maybe ByteString)]
-> [(ByteString, Maybe ByteString)]
forall a. [Maybe a] -> [a]
catMaybes
[ (ByteString
"filter",) (Maybe ByteString -> (ByteString, Maybe ByteString))
-> ([Char] -> Maybe ByteString)
-> [Char]
-> (ByteString, Maybe ByteString)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> Maybe ByteString
forall a. a -> Maybe a
Just (ByteString -> Maybe ByteString)
-> ([Char] -> ByteString) -> [Char] -> Maybe ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Char] -> ByteString
BS8.pack ([Char] -> (ByteString, Maybe ByteString))
-> Maybe [Char] -> Maybe (ByteString, Maybe ByteString)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ListInstancesQuery -> Maybe [Char]
filter_ ListInstancesQuery
q
, (ByteString
"maxResults",) (Maybe ByteString -> (ByteString, Maybe ByteString))
-> (Int -> Maybe ByteString)
-> Int
-> (ByteString, Maybe ByteString)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> Maybe ByteString
forall a. a -> Maybe a
Just (ByteString -> Maybe ByteString)
-> (Int -> ByteString) -> Int -> Maybe ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Char] -> ByteString
BS8.pack ([Char] -> ByteString) -> (Int -> [Char]) -> Int -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> [Char]
forall a. Show a => a -> [Char]
show (Int -> (ByteString, Maybe ByteString))
-> Maybe Int -> Maybe (ByteString, Maybe ByteString)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ListInstancesQuery -> Maybe Int
maxResults ListInstancesQuery
q
, (ByteString
"orderBy",) (Maybe ByteString -> (ByteString, Maybe ByteString))
-> ([Char] -> Maybe ByteString)
-> [Char]
-> (ByteString, Maybe ByteString)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> Maybe ByteString
forall a. a -> Maybe a
Just (ByteString -> Maybe ByteString)
-> ([Char] -> ByteString) -> [Char] -> Maybe ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Char] -> ByteString
BS8.pack ([Char] -> (ByteString, Maybe ByteString))
-> Maybe [Char] -> Maybe (ByteString, Maybe ByteString)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ListInstancesQuery -> Maybe [Char]
orderBy ListInstancesQuery
q
, (ByteString
"pageToken",) (Maybe ByteString -> (ByteString, Maybe ByteString))
-> ([Char] -> Maybe ByteString)
-> [Char]
-> (ByteString, Maybe ByteString)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> Maybe ByteString
forall a. a -> Maybe a
Just (ByteString -> Maybe ByteString)
-> ([Char] -> ByteString) -> [Char] -> Maybe ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Char] -> ByteString
BS8.pack ([Char] -> (ByteString, Maybe ByteString))
-> Maybe [Char] -> Maybe (ByteString, Maybe ByteString)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ListInstancesQuery -> Maybe [Char]
pageToken ListInstancesQuery
q
, (ByteString
"returnPartialSuccess",) (Maybe ByteString -> (ByteString, Maybe ByteString))
-> (Bool -> Maybe ByteString)
-> Bool
-> (ByteString, Maybe ByteString)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> Maybe ByteString
forall a. a -> Maybe a
Just (ByteString -> Maybe ByteString)
-> (Bool -> ByteString) -> Bool -> Maybe ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Char] -> ByteString
BS8.pack ([Char] -> ByteString) -> (Bool -> [Char]) -> Bool -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> [Char]
forall a. Show a => a -> [Char]
show (Bool -> (ByteString, Maybe ByteString))
-> Maybe Bool -> Maybe (ByteString, Maybe ByteString)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ListInstancesQuery -> Maybe Bool
returnPartialSuccess ListInstancesQuery
q
]
deleteInstance ::
String -> String -> String -> Maybe RequestIdQuery -> IO (Either String InstanceDeleteResp)
deleteInstance :: [Char]
-> [Char]
-> [Char]
-> Maybe RequestIdQuery
-> IO (Either [Char] InstanceDeleteResp)
deleteInstance [Char]
project [Char]
zone_ [Char]
name_ Maybe RequestIdQuery
mbQuery = do
let queryParams :: [(ByteString, Maybe ByteString)]
queryParams = [(ByteString, Maybe ByteString)]
-> (RequestIdQuery -> [(ByteString, Maybe ByteString)])
-> Maybe RequestIdQuery
-> [(ByteString, Maybe ByteString)]
forall b a. b -> (a -> b) -> Maybe a -> b
maybe [] RequestIdQuery -> [(ByteString, Maybe ByteString)]
toQueryList Maybe RequestIdQuery
mbQuery
RequestOptions -> IO (Either [Char] InstanceDeleteResp)
forall b. FromJSON b => RequestOptions -> IO (Either [Char] b)
doRequestJSON
RequestOptions
{ reqMethod :: RequestMethod
reqMethod = RequestMethod
DELETE
, reqUrl :: [Char]
reqUrl = [Char]
googleComputeUrl
, mbQueryParams :: Maybe [(ByteString, Maybe ByteString)]
mbQueryParams = [(ByteString, Maybe ByteString)]
-> Maybe [(ByteString, Maybe ByteString)]
forall a. a -> Maybe a
Just [(ByteString, Maybe ByteString)]
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 [Char]
mbReqPath = [Char] -> Maybe [Char]
forall a. a -> Maybe a
Just ([Char]
"/projects/" [Char] -> ShowS
forall a. Semigroup a => a -> a -> a
<> [Char]
project [Char] -> ShowS
forall a. Semigroup a => a -> a -> a
<> [Char]
"/zones/" [Char] -> ShowS
forall a. Semigroup a => a -> a -> a
<> [Char]
zone_ [Char] -> ShowS
forall a. Semigroup a => a -> a -> a
<> [Char]
"/instances/" [Char] -> ShowS
forall a. Semigroup a => a -> a -> a
<> [Char]
name_)
}
where
toQueryList :: RequestIdQuery -> [(BS.ByteString, Maybe BS.ByteString)]
toQueryList :: RequestIdQuery -> [(ByteString, Maybe ByteString)]
toQueryList RequestIdQuery {Maybe [Char]
$sel:requestId:RequestIdQuery :: RequestIdQuery -> Maybe [Char]
requestId :: Maybe [Char]
..} =
[Maybe (ByteString, Maybe ByteString)]
-> [(ByteString, Maybe ByteString)]
forall a. [Maybe a] -> [a]
catMaybes
[(ByteString
"requestId",) (Maybe ByteString -> (ByteString, Maybe ByteString))
-> ([Char] -> Maybe ByteString)
-> [Char]
-> (ByteString, Maybe ByteString)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> Maybe ByteString
forall a. a -> Maybe a
Just (ByteString -> Maybe ByteString)
-> ([Char] -> ByteString) -> [Char] -> Maybe ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Char] -> ByteString
BS8.pack ([Char] -> (ByteString, Maybe ByteString))
-> Maybe [Char] -> Maybe (ByteString, Maybe ByteString)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
requestId]
startInstance ::
String ->
String ->
String ->
Maybe RequestIdQuery ->
IO (Either String InstanceStartResponse)
startInstance :: [Char]
-> [Char]
-> [Char]
-> Maybe RequestIdQuery
-> IO (Either [Char] InstanceStartResponse)
startInstance [Char]
projectId [Char]
zone_ [Char]
instanceName Maybe RequestIdQuery
mbQuery = do
let queryParams :: [(ByteString, Maybe ByteString)]
queryParams = [(ByteString, Maybe ByteString)]
-> (RequestIdQuery -> [(ByteString, Maybe ByteString)])
-> Maybe RequestIdQuery
-> [(ByteString, Maybe ByteString)]
forall b a. b -> (a -> b) -> Maybe a -> b
maybe [] RequestIdQuery -> [(ByteString, Maybe ByteString)]
toQueryList Maybe RequestIdQuery
mbQuery
RequestOptions -> IO (Either [Char] InstanceStartResponse)
forall b. FromJSON b => RequestOptions -> IO (Either [Char] b)
doRequestJSON
RequestOptions
{ reqMethod :: RequestMethod
reqMethod = RequestMethod
POST
, reqUrl :: [Char]
reqUrl = [Char]
googleComputeUrl
, mbQueryParams :: Maybe [(ByteString, Maybe ByteString)]
mbQueryParams = [(ByteString, Maybe ByteString)]
-> Maybe [(ByteString, Maybe ByteString)]
forall a. a -> Maybe a
Just [(ByteString, Maybe ByteString)]
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 [Char]
mbReqPath =
[Char] -> Maybe [Char]
forall a. a -> Maybe a
Just ([Char]
"/projects/" [Char] -> ShowS
forall a. Semigroup a => a -> a -> a
<> [Char]
projectId [Char] -> ShowS
forall a. Semigroup a => a -> a -> a
<> [Char]
"/zones/" [Char] -> ShowS
forall a. Semigroup a => a -> a -> a
<> [Char]
zone_ [Char] -> ShowS
forall a. Semigroup a => a -> a -> a
<> [Char]
"/instances/" [Char] -> ShowS
forall a. Semigroup a => a -> a -> a
<> [Char]
instanceName [Char] -> ShowS
forall a. Semigroup a => a -> a -> a
<> [Char]
"/start")
}
where
toQueryList :: RequestIdQuery -> [(BS.ByteString, Maybe BS.ByteString)]
toQueryList :: RequestIdQuery -> [(ByteString, Maybe ByteString)]
toQueryList RequestIdQuery {Maybe [Char]
$sel:requestId:RequestIdQuery :: RequestIdQuery -> Maybe [Char]
requestId :: Maybe [Char]
..} =
[Maybe (ByteString, Maybe ByteString)]
-> [(ByteString, Maybe ByteString)]
forall a. [Maybe a] -> [a]
catMaybes
[(ByteString
"requestId",) (Maybe ByteString -> (ByteString, Maybe ByteString))
-> ([Char] -> Maybe ByteString)
-> [Char]
-> (ByteString, Maybe ByteString)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> Maybe ByteString
forall a. a -> Maybe a
Just (ByteString -> Maybe ByteString)
-> ([Char] -> ByteString) -> [Char] -> Maybe ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Char] -> ByteString
BS8.pack ([Char] -> (ByteString, Maybe ByteString))
-> Maybe [Char] -> Maybe (ByteString, Maybe ByteString)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
requestId]
stopInstance ::
String ->
String ->
String ->
Maybe RequestIdQuery ->
IO (Either String InstanceStartResponse)
stopInstance :: [Char]
-> [Char]
-> [Char]
-> Maybe RequestIdQuery
-> IO (Either [Char] InstanceStartResponse)
stopInstance [Char]
projectId [Char]
zone_ [Char]
instanceName Maybe RequestIdQuery
mbQuery = do
let queryParams :: [(ByteString, Maybe ByteString)]
queryParams = [(ByteString, Maybe ByteString)]
-> (RequestIdQuery -> [(ByteString, Maybe ByteString)])
-> Maybe RequestIdQuery
-> [(ByteString, Maybe ByteString)]
forall b a. b -> (a -> b) -> Maybe a -> b
maybe [] RequestIdQuery -> [(ByteString, Maybe ByteString)]
toQueryList Maybe RequestIdQuery
mbQuery
RequestOptions -> IO (Either [Char] InstanceStartResponse)
forall b. FromJSON b => RequestOptions -> IO (Either [Char] b)
doRequestJSON
RequestOptions
{ reqMethod :: RequestMethod
reqMethod = RequestMethod
POST
, reqUrl :: [Char]
reqUrl = [Char]
googleComputeUrl
, mbQueryParams :: Maybe [(ByteString, Maybe ByteString)]
mbQueryParams = [(ByteString, Maybe ByteString)]
-> Maybe [(ByteString, Maybe ByteString)]
forall a. a -> Maybe a
Just [(ByteString, Maybe ByteString)]
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 [Char]
mbReqPath =
[Char] -> Maybe [Char]
forall a. a -> Maybe a
Just ([Char]
"/projects/" [Char] -> ShowS
forall a. Semigroup a => a -> a -> a
<> [Char]
projectId [Char] -> ShowS
forall a. Semigroup a => a -> a -> a
<> [Char]
"/zones/" [Char] -> ShowS
forall a. Semigroup a => a -> a -> a
<> [Char]
zone_ [Char] -> ShowS
forall a. Semigroup a => a -> a -> a
<> [Char]
"/instances/" [Char] -> ShowS
forall a. Semigroup a => a -> a -> a
<> [Char]
instanceName [Char] -> ShowS
forall a. Semigroup a => a -> a -> a
<> [Char]
"/stop")
}
where
toQueryList :: RequestIdQuery -> [(BS.ByteString, Maybe BS.ByteString)]
toQueryList :: RequestIdQuery -> [(ByteString, Maybe ByteString)]
toQueryList RequestIdQuery {Maybe [Char]
$sel:requestId:RequestIdQuery :: RequestIdQuery -> Maybe [Char]
requestId :: Maybe [Char]
..} =
[Maybe (ByteString, Maybe ByteString)]
-> [(ByteString, Maybe ByteString)]
forall a. [Maybe a] -> [a]
catMaybes
[(ByteString
"requestId",) (Maybe ByteString -> (ByteString, Maybe ByteString))
-> ([Char] -> Maybe ByteString)
-> [Char]
-> (ByteString, Maybe ByteString)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> Maybe ByteString
forall a. a -> Maybe a
Just (ByteString -> Maybe ByteString)
-> ([Char] -> ByteString) -> [Char] -> Maybe ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Char] -> ByteString
BS8.pack ([Char] -> (ByteString, Maybe ByteString))
-> Maybe [Char] -> Maybe (ByteString, Maybe ByteString)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
requestId]
insertInstance ::
String ->
String ->
InsertInstanceOps ->
Maybe InsertInstanceQuery ->
IO (Either String InstanceStartResponse)
insertInstance :: [Char]
-> [Char]
-> InsertInstanceOps
-> Maybe InsertInstanceQuery
-> IO (Either [Char] InstanceStartResponse)
insertInstance [Char]
projectId [Char]
zone_ InsertInstanceOps
insertOps Maybe InsertInstanceQuery
mbQuery = do
let queryParams :: [(ByteString, Maybe ByteString)]
queryParams = [(ByteString, Maybe ByteString)]
-> (InsertInstanceQuery -> [(ByteString, Maybe ByteString)])
-> Maybe InsertInstanceQuery
-> [(ByteString, Maybe ByteString)]
forall b a. b -> (a -> b) -> Maybe a -> b
maybe [] InsertInstanceQuery -> [(ByteString, Maybe ByteString)]
toQueryList Maybe InsertInstanceQuery
mbQuery
RequestOptions -> IO (Either [Char] InstanceStartResponse)
forall b. FromJSON b => RequestOptions -> IO (Either [Char] b)
doRequestJSON
RequestOptions
{ reqMethod :: RequestMethod
reqMethod = RequestMethod
POST
, reqUrl :: [Char]
reqUrl = [Char]
googleComputeUrl
, mbQueryParams :: Maybe [(ByteString, Maybe ByteString)]
mbQueryParams = [(ByteString, Maybe ByteString)]
-> Maybe [(ByteString, Maybe ByteString)]
forall a. a -> Maybe a
Just [(ByteString, Maybe ByteString)]
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
$ InsertInstanceOps -> ByteString
forall a. ToJSON a => a -> ByteString
encode InsertInstanceOps
insertOps
, mbReqHeaders :: Maybe RequestHeaders
mbReqHeaders = Maybe RequestHeaders
forall a. Maybe a
Nothing
, mbReqPath :: Maybe [Char]
mbReqPath = [Char] -> Maybe [Char]
forall a. a -> Maybe a
Just ([Char] -> Maybe [Char]) -> [Char] -> Maybe [Char]
forall a b. (a -> b) -> a -> b
$ [Char]
"/projects/" [Char] -> ShowS
forall a. Semigroup a => a -> a -> a
<> [Char]
projectId [Char] -> ShowS
forall a. Semigroup a => a -> a -> a
<> [Char]
"/zones/" [Char] -> ShowS
forall a. Semigroup a => a -> a -> a
<> [Char]
zone_ [Char] -> ShowS
forall a. Semigroup a => a -> a -> a
<> [Char]
"/instances"
}
where
toQueryList :: InsertInstanceQuery -> [(BS.ByteString, Maybe BS.ByteString)]
toQueryList :: InsertInstanceQuery -> [(ByteString, Maybe ByteString)]
toQueryList InsertInstanceQuery {Maybe [Char]
$sel:requestId:InsertInstanceQuery :: InsertInstanceQuery -> Maybe [Char]
$sel:sourceInstanceTemplate:InsertInstanceQuery :: InsertInstanceQuery -> Maybe [Char]
requestId :: Maybe [Char]
sourceInstanceTemplate :: Maybe [Char]
..} =
[Maybe (ByteString, Maybe ByteString)]
-> [(ByteString, Maybe ByteString)]
forall a. [Maybe a] -> [a]
catMaybes
[ (ByteString
"requestId",) (Maybe ByteString -> (ByteString, Maybe ByteString))
-> ([Char] -> Maybe ByteString)
-> [Char]
-> (ByteString, Maybe ByteString)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> Maybe ByteString
forall a. a -> Maybe a
Just (ByteString -> Maybe ByteString)
-> ([Char] -> ByteString) -> [Char] -> Maybe ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Char] -> ByteString
BS8.pack ([Char] -> (ByteString, Maybe ByteString))
-> Maybe [Char] -> Maybe (ByteString, Maybe ByteString)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
requestId
, (ByteString
"sourceInstanceTemplate",) (Maybe ByteString -> (ByteString, Maybe ByteString))
-> ([Char] -> Maybe ByteString)
-> [Char]
-> (ByteString, Maybe ByteString)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> Maybe ByteString
forall a. a -> Maybe a
Just (ByteString -> Maybe ByteString)
-> ([Char] -> ByteString) -> [Char] -> Maybe ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Char] -> ByteString
BS8.pack ([Char] -> (ByteString, Maybe ByteString))
-> Maybe [Char] -> Maybe (ByteString, Maybe ByteString)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [Char]
sourceInstanceTemplate
]
defaultListInstancesQuery :: ListInstancesQuery
defaultListInstancesQuery :: ListInstancesQuery
defaultListInstancesQuery =
ListInstancesQuery
{ $sel:filter_:ListInstancesQuery :: Maybe [Char]
filter_ = Maybe [Char]
forall a. Maybe a
Nothing
, $sel:maxResults:ListInstancesQuery :: Maybe Int
maxResults = Maybe Int
forall a. Maybe a
Nothing
, $sel:orderBy:ListInstancesQuery :: Maybe [Char]
orderBy = Maybe [Char]
forall a. Maybe a
Nothing
, $sel:pageToken:ListInstancesQuery :: Maybe [Char]
pageToken = Maybe [Char]
forall a. Maybe a
Nothing
, $sel:returnPartialSuccess:ListInstancesQuery :: Maybe Bool
returnPartialSuccess = Maybe Bool
forall a. Maybe a
Nothing
}
defaultRequestIdQuery :: String -> RequestIdQuery
defaultRequestIdQuery :: [Char] -> RequestIdQuery
defaultRequestIdQuery [Char]
rid = RequestIdQuery {$sel:requestId:RequestIdQuery :: Maybe [Char]
requestId = [Char] -> Maybe [Char]
forall a. a -> Maybe a
Just [Char]
rid}
defaultInsertInstanceOps :: String -> String -> String -> String -> InsertInstanceOps
defaultInsertInstanceOps :: [Char] -> [Char] -> [Char] -> [Char] -> InsertInstanceOps
defaultInsertInstanceOps [Char]
projectId [Char]
zone [Char]
instanceName [Char]
machineType =
InsertInstanceOps
{ $sel:name:InsertInstanceOps :: [Char]
name = [Char]
instanceName
, $sel:machineType:InsertInstanceOps :: [Char]
machineType = [Char]
"zones/" [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
zone [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"/machineTypes/" [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
machineType
, $sel:disks:InsertInstanceOps :: Maybe [Disk]
disks = [Disk] -> Maybe [Disk]
forall a. a -> Maybe a
Just [Disk
defaultDisk]
, $sel:networkInterfaces:InsertInstanceOps :: Maybe [NetworkInterface]
networkInterfaces = [NetworkInterface] -> Maybe [NetworkInterface]
forall a. a -> Maybe a
Just [NetworkInterface
defaultNetworkInterface]
}
where
defaultDisk :: Disk
defaultDisk = Disk
{ $sel:autoDelete:Disk :: Bool
autoDelete = Bool
True
, $sel:boot:Disk :: Bool
boot = Bool
True
, $sel:deviceName:Disk :: [Char]
deviceName = [Char]
instanceName [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"-boot"
, $sel:initializeParams:Disk :: Maybe InitializeParams
initializeParams = InitializeParams -> Maybe InitializeParams
forall a. a -> Maybe a
Just InitializeParams
defaultInitializeParams
, $sel:mode:Disk :: [Char]
mode = [Char]
"READ_WRITE"
, $sel:type_:Disk :: [Char]
type_ = [Char]
"PERSISTENT"
}
defaultInitializeParams :: InitializeParams
defaultInitializeParams = InitializeParams
{ $sel:diskSizeGb:InitializeParams :: [Char]
diskSizeGb = [Char]
"10"
, $sel:diskType:InitializeParams :: [Char]
diskType = [Char]
"projects/" [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
projectId [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"/zones/" [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
zone [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"/diskTypes/pd-standard"
, $sel:labels:InitializeParams :: Map [Char] [Char]
labels = Map [Char] [Char]
forall k a. Map k a
Map.empty
, $sel:sourceImage:InitializeParams :: [Char]
sourceImage = [Char]
"projects/debian-cloud/global/images/debian-12-bookworm-v20250311"
}
defaultNetworkInterface :: NetworkInterface
defaultNetworkInterface = NetworkInterface
{ $sel:network:NetworkInterface :: [Char]
network = [Char]
"projects/" [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
projectId [Char] -> ShowS
forall a. [a] -> [a] -> [a]
++ [Char]
"/global/networks/default"
}