{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}
module Google.Cloud.Compute.Network
(
listNetworks
, NetworkList(..)
, NetworkMeta(..)
, NetworkPeering(..)
, ListNetworksQuery(..)
, defaultListNetworksQuery
) where
import Data.Aeson
import Data.Text (Text)
import Google.Cloud.Common.Core
import Google.Cloud.Compute.Common
import Data.Maybe (catMaybes)
import qualified Data.ByteString.Char8 as BS8
data NetworkList = NetworkList
{ NetworkList -> Text
kind :: Text
, NetworkList -> Text
id_ :: Text
, NetworkList -> [NetworkMeta]
items :: [NetworkMeta]
, NetworkList -> Maybe Text
nextPageToken :: Maybe Text
, NetworkList -> Text
selfLink :: Text
} deriving (NetworkList -> NetworkList -> Bool
(NetworkList -> NetworkList -> Bool)
-> (NetworkList -> NetworkList -> Bool) -> Eq NetworkList
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: NetworkList -> NetworkList -> Bool
== :: NetworkList -> NetworkList -> Bool
$c/= :: NetworkList -> NetworkList -> Bool
/= :: NetworkList -> NetworkList -> Bool
Eq, Int -> NetworkList -> ShowS
[NetworkList] -> ShowS
NetworkList -> String
(Int -> NetworkList -> ShowS)
-> (NetworkList -> String)
-> ([NetworkList] -> ShowS)
-> Show NetworkList
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> NetworkList -> ShowS
showsPrec :: Int -> NetworkList -> ShowS
$cshow :: NetworkList -> String
show :: NetworkList -> String
$cshowList :: [NetworkList] -> ShowS
showList :: [NetworkList] -> ShowS
Show)
instance FromJSON NetworkList where
parseJSON :: Value -> Parser NetworkList
parseJSON = String
-> (Object -> Parser NetworkList) -> Value -> Parser NetworkList
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"NetworkList" ((Object -> Parser NetworkList) -> Value -> Parser NetworkList)
-> (Object -> Parser NetworkList) -> Value -> Parser NetworkList
forall a b. (a -> b) -> a -> b
$ \Object
v -> Text -> Text -> [NetworkMeta] -> Maybe Text -> Text -> NetworkList
NetworkList
(Text
-> Text -> [NetworkMeta] -> Maybe Text -> Text -> NetworkList)
-> Parser Text
-> Parser
(Text -> [NetworkMeta] -> Maybe Text -> Text -> NetworkList)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
v Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"kind"
Parser (Text -> [NetworkMeta] -> Maybe Text -> Text -> NetworkList)
-> Parser Text
-> Parser ([NetworkMeta] -> Maybe Text -> Text -> NetworkList)
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 Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"id"
Parser ([NetworkMeta] -> Maybe Text -> Text -> NetworkList)
-> Parser [NetworkMeta]
-> Parser (Maybe Text -> Text -> NetworkList)
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 [NetworkMeta]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"items"
Parser (Maybe Text -> Text -> NetworkList)
-> Parser (Maybe Text) -> Parser (Text -> NetworkList)
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 Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"nextPageToken"
Parser (Text -> NetworkList) -> Parser Text -> Parser NetworkList
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 Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"selfLink"
instance ToJSON NetworkList where
toJSON :: NetworkList -> Value
toJSON NetworkList{[NetworkMeta]
Maybe Text
Text
$sel:kind:NetworkList :: NetworkList -> Text
$sel:id_:NetworkList :: NetworkList -> Text
$sel:items:NetworkList :: NetworkList -> [NetworkMeta]
$sel:nextPageToken:NetworkList :: NetworkList -> Maybe Text
$sel:selfLink:NetworkList :: NetworkList -> Text
kind :: Text
id_ :: Text
items :: [NetworkMeta]
nextPageToken :: Maybe Text
selfLink :: Text
..} = [Pair] -> Value
object
[ 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
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
id_
, Key
"items" Key -> [NetworkMeta] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [NetworkMeta]
items
, Key
"nextPageToken" Key -> Maybe Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe Text
nextPageToken
, Key
"selfLink" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text
selfLink
]
data NetworkMeta = NetworkMeta
{ NetworkMeta -> Text
kind :: Text
, NetworkMeta -> Text
id_ :: Text
, NetworkMeta -> Text
creationTimestamp :: Text
, NetworkMeta -> Text
name :: Text
, NetworkMeta -> Maybe Text
description :: Maybe Text
, NetworkMeta -> Maybe Bool
autoCreateSubnetworks :: Maybe Bool
, NetworkMeta -> [Text]
subnetworks :: [Text]
, NetworkMeta -> Maybe Text
iPv4Range :: Maybe Text
, NetworkMeta -> Maybe Text
iPv6Range :: Maybe Text
, NetworkMeta -> Maybe Text
gatewayIPv4 :: Maybe Text
, NetworkMeta -> Maybe Int
mtu :: Maybe Int
, NetworkMeta -> Maybe [NetworkPeering]
peerings :: Maybe [NetworkPeering]
, NetworkMeta -> Text
selfLink :: Text
, NetworkMeta -> Maybe Bool
enableUlaInternalIpv6 :: Maybe Bool
, NetworkMeta -> Maybe Text
internalIpv6Range :: Maybe Text
, NetworkMeta -> Maybe Text
networkFirewallPolicyEnforcementOrder :: Maybe Text
} deriving (NetworkMeta -> NetworkMeta -> Bool
(NetworkMeta -> NetworkMeta -> Bool)
-> (NetworkMeta -> NetworkMeta -> Bool) -> Eq NetworkMeta
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: NetworkMeta -> NetworkMeta -> Bool
== :: NetworkMeta -> NetworkMeta -> Bool
$c/= :: NetworkMeta -> NetworkMeta -> Bool
/= :: NetworkMeta -> NetworkMeta -> Bool
Eq, Int -> NetworkMeta -> ShowS
[NetworkMeta] -> ShowS
NetworkMeta -> String
(Int -> NetworkMeta -> ShowS)
-> (NetworkMeta -> String)
-> ([NetworkMeta] -> ShowS)
-> Show NetworkMeta
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> NetworkMeta -> ShowS
showsPrec :: Int -> NetworkMeta -> ShowS
$cshow :: NetworkMeta -> String
show :: NetworkMeta -> String
$cshowList :: [NetworkMeta] -> ShowS
showList :: [NetworkMeta] -> ShowS
Show)
instance FromJSON NetworkMeta where
parseJSON :: Value -> Parser NetworkMeta
parseJSON = String
-> (Object -> Parser NetworkMeta) -> Value -> Parser NetworkMeta
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"NetworkMeta" ((Object -> Parser NetworkMeta) -> Value -> Parser NetworkMeta)
-> (Object -> Parser NetworkMeta) -> Value -> Parser NetworkMeta
forall a b. (a -> b) -> a -> b
$ \Object
v -> Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Maybe Bool
-> [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe [NetworkPeering]
-> Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> NetworkMeta
NetworkMeta
(Text
-> Text
-> Text
-> Text
-> Maybe Text
-> Maybe Bool
-> [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe [NetworkPeering]
-> Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> NetworkMeta)
-> Parser Text
-> Parser
(Text
-> Text
-> Text
-> Maybe Text
-> Maybe Bool
-> [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe [NetworkPeering]
-> Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> NetworkMeta)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
v Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"kind"
Parser
(Text
-> Text
-> Text
-> Maybe Text
-> Maybe Bool
-> [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe [NetworkPeering]
-> Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> NetworkMeta)
-> Parser Text
-> Parser
(Text
-> Text
-> Maybe Text
-> Maybe Bool
-> [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe [NetworkPeering]
-> Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> NetworkMeta)
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 Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"id"
Parser
(Text
-> Text
-> Maybe Text
-> Maybe Bool
-> [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe [NetworkPeering]
-> Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> NetworkMeta)
-> Parser Text
-> Parser
(Text
-> Maybe Text
-> Maybe Bool
-> [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe [NetworkPeering]
-> Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> NetworkMeta)
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 Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"creationTimestamp"
Parser
(Text
-> Maybe Text
-> Maybe Bool
-> [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe [NetworkPeering]
-> Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> NetworkMeta)
-> Parser Text
-> Parser
(Maybe Text
-> Maybe Bool
-> [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe [NetworkPeering]
-> Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> NetworkMeta)
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 Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"name"
Parser
(Maybe Text
-> Maybe Bool
-> [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe [NetworkPeering]
-> Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> NetworkMeta)
-> Parser (Maybe Text)
-> Parser
(Maybe Bool
-> [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe [NetworkPeering]
-> Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> NetworkMeta)
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 Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"description"
Parser
(Maybe Bool
-> [Text]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe [NetworkPeering]
-> Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> NetworkMeta)
-> Parser (Maybe Bool)
-> Parser
([Text]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe [NetworkPeering]
-> Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> NetworkMeta)
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 Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"autoCreateSubnetworks"
Parser
([Text]
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe [NetworkPeering]
-> Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> NetworkMeta)
-> Parser [Text]
-> Parser
(Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe [NetworkPeering]
-> Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> NetworkMeta)
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 [Text]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"subnetworks"
Parser
(Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe [NetworkPeering]
-> Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> NetworkMeta)
-> Parser (Maybe Text)
-> Parser
(Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe [NetworkPeering]
-> Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> NetworkMeta)
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 Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"IPv4Range"
Parser
(Maybe Text
-> Maybe Text
-> Maybe Int
-> Maybe [NetworkPeering]
-> Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> NetworkMeta)
-> Parser (Maybe Text)
-> Parser
(Maybe Text
-> Maybe Int
-> Maybe [NetworkPeering]
-> Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> NetworkMeta)
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 Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"IPv6Range"
Parser
(Maybe Text
-> Maybe Int
-> Maybe [NetworkPeering]
-> Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> NetworkMeta)
-> Parser (Maybe Text)
-> Parser
(Maybe Int
-> Maybe [NetworkPeering]
-> Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> NetworkMeta)
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 Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"gatewayIPv4"
Parser
(Maybe Int
-> Maybe [NetworkPeering]
-> Text
-> Maybe Bool
-> Maybe Text
-> Maybe Text
-> NetworkMeta)
-> Parser (Maybe Int)
-> Parser
(Maybe [NetworkPeering]
-> Text -> Maybe Bool -> Maybe Text -> Maybe Text -> NetworkMeta)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
v Object -> Key -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"mtu"
Parser
(Maybe [NetworkPeering]
-> Text -> Maybe Bool -> Maybe Text -> Maybe Text -> NetworkMeta)
-> Parser (Maybe [NetworkPeering])
-> Parser
(Text -> Maybe Bool -> Maybe Text -> Maybe Text -> NetworkMeta)
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 [NetworkPeering])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"peerings")
Parser
(Text -> Maybe Bool -> Maybe Text -> Maybe Text -> NetworkMeta)
-> Parser Text
-> Parser (Maybe Bool -> Maybe Text -> Maybe Text -> NetworkMeta)
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 Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"selfLink"
Parser (Maybe Bool -> Maybe Text -> Maybe Text -> NetworkMeta)
-> Parser (Maybe Bool)
-> Parser (Maybe Text -> Maybe Text -> NetworkMeta)
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 Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"enableUlaInternalIpv6"
Parser (Maybe Text -> Maybe Text -> NetworkMeta)
-> Parser (Maybe Text) -> Parser (Maybe Text -> NetworkMeta)
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 Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"internalIpv6Range"
Parser (Maybe Text -> NetworkMeta)
-> Parser (Maybe Text) -> Parser NetworkMeta
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 Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"networkFirewallPolicyEnforcementOrder"
instance ToJSON NetworkMeta where
toJSON :: NetworkMeta -> Value
toJSON NetworkMeta{[Text]
Maybe Bool
Maybe Int
Maybe [NetworkPeering]
Maybe Text
Text
$sel:kind:NetworkMeta :: NetworkMeta -> Text
$sel:id_:NetworkMeta :: NetworkMeta -> Text
$sel:creationTimestamp:NetworkMeta :: NetworkMeta -> Text
$sel:name:NetworkMeta :: NetworkMeta -> Text
$sel:description:NetworkMeta :: NetworkMeta -> Maybe Text
$sel:autoCreateSubnetworks:NetworkMeta :: NetworkMeta -> Maybe Bool
$sel:subnetworks:NetworkMeta :: NetworkMeta -> [Text]
$sel:iPv4Range:NetworkMeta :: NetworkMeta -> Maybe Text
$sel:iPv6Range:NetworkMeta :: NetworkMeta -> Maybe Text
$sel:gatewayIPv4:NetworkMeta :: NetworkMeta -> Maybe Text
$sel:mtu:NetworkMeta :: NetworkMeta -> Maybe Int
$sel:peerings:NetworkMeta :: NetworkMeta -> Maybe [NetworkPeering]
$sel:selfLink:NetworkMeta :: NetworkMeta -> Text
$sel:enableUlaInternalIpv6:NetworkMeta :: NetworkMeta -> Maybe Bool
$sel:internalIpv6Range:NetworkMeta :: NetworkMeta -> Maybe Text
$sel:networkFirewallPolicyEnforcementOrder:NetworkMeta :: NetworkMeta -> Maybe Text
kind :: Text
id_ :: Text
creationTimestamp :: Text
name :: Text
description :: Maybe Text
autoCreateSubnetworks :: Maybe Bool
subnetworks :: [Text]
iPv4Range :: Maybe Text
iPv6Range :: Maybe Text
gatewayIPv4 :: Maybe Text
mtu :: Maybe Int
peerings :: Maybe [NetworkPeering]
selfLink :: Text
enableUlaInternalIpv6 :: Maybe Bool
internalIpv6Range :: Maybe Text
networkFirewallPolicyEnforcementOrder :: 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
[ Pair -> Maybe Pair
forall a. a -> Maybe a
Just (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
kind)
, Pair -> Maybe Pair
forall a. a -> Maybe a
Just (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
id_)
, Pair -> Maybe Pair
forall a. a -> Maybe a
Just (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
creationTimestamp )
, Pair -> Maybe Pair
forall a. a -> Maybe a
Just (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
name )
, (Key
"description" 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
description
, (Key
"autoCreateSubnetworks" 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
<$> Maybe Bool
autoCreateSubnetworks
, Pair -> Maybe Pair
forall a. a -> Maybe a
Just (Key
"subnetworks" Key -> [Text] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [Text]
subnetworks)
, (Key
"IPv4Range" 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
iPv4Range
, (Key
"IPv6Range" 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
iPv6Range
, (Key
"gatewayIPv4" 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
gatewayIPv4
, (Key
"mtu" 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
mtu
, Pair -> Maybe Pair
forall a. a -> Maybe a
Just (Key
"peerings" Key -> Maybe [NetworkPeering] -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Maybe [NetworkPeering]
peerings )
, Pair -> Maybe Pair
forall a. a -> Maybe a
Just (Key
"selfLink" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text
selfLink )
, (Key
"enableUlaInternalIpv6" 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
<$> Maybe Bool
enableUlaInternalIpv6
, (Key
"internalIpv6Range" 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
internalIpv6Range
, (Key
"networkFirewallPolicyEnforcementOrder" 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
networkFirewallPolicyEnforcementOrder
]
data NetworkPeering = NetworkPeering
{ NetworkPeering -> Text
name :: Text
, NetworkPeering -> Text
network :: Text
, NetworkPeering -> Text
state :: Text
, NetworkPeering -> Maybe Text
stateDetails :: Maybe Text
, NetworkPeering -> Maybe Bool
exchangeSubnetRoutes :: Maybe Bool
, NetworkPeering -> Maybe Bool
exportCustomRoutes :: Maybe Bool
, NetworkPeering -> Maybe Bool
importCustomRoutes :: Maybe Bool
} deriving (NetworkPeering -> NetworkPeering -> Bool
(NetworkPeering -> NetworkPeering -> Bool)
-> (NetworkPeering -> NetworkPeering -> Bool) -> Eq NetworkPeering
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: NetworkPeering -> NetworkPeering -> Bool
== :: NetworkPeering -> NetworkPeering -> Bool
$c/= :: NetworkPeering -> NetworkPeering -> Bool
/= :: NetworkPeering -> NetworkPeering -> Bool
Eq, Int -> NetworkPeering -> ShowS
[NetworkPeering] -> ShowS
NetworkPeering -> String
(Int -> NetworkPeering -> ShowS)
-> (NetworkPeering -> String)
-> ([NetworkPeering] -> ShowS)
-> Show NetworkPeering
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> NetworkPeering -> ShowS
showsPrec :: Int -> NetworkPeering -> ShowS
$cshow :: NetworkPeering -> String
show :: NetworkPeering -> String
$cshowList :: [NetworkPeering] -> ShowS
showList :: [NetworkPeering] -> ShowS
Show)
instance FromJSON NetworkPeering where
parseJSON :: Value -> Parser NetworkPeering
parseJSON = String
-> (Object -> Parser NetworkPeering)
-> Value
-> Parser NetworkPeering
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"NetworkPeering" ((Object -> Parser NetworkPeering)
-> Value -> Parser NetworkPeering)
-> (Object -> Parser NetworkPeering)
-> Value
-> Parser NetworkPeering
forall a b. (a -> b) -> a -> b
$ \Object
v -> Text
-> Text
-> Text
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> NetworkPeering
NetworkPeering
(Text
-> Text
-> Text
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> NetworkPeering)
-> Parser Text
-> Parser
(Text
-> Text
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> NetworkPeering)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
v Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"name"
Parser
(Text
-> Text
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> NetworkPeering)
-> Parser Text
-> Parser
(Text
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> NetworkPeering)
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 Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"network"
Parser
(Text
-> Maybe Text
-> Maybe Bool
-> Maybe Bool
-> Maybe Bool
-> NetworkPeering)
-> Parser Text
-> Parser
(Maybe Text
-> Maybe Bool -> Maybe Bool -> Maybe Bool -> NetworkPeering)
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 Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"state"
Parser
(Maybe Text
-> Maybe Bool -> Maybe Bool -> Maybe Bool -> NetworkPeering)
-> Parser (Maybe Text)
-> Parser
(Maybe Bool -> Maybe Bool -> Maybe Bool -> NetworkPeering)
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 Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"stateDetails"
Parser (Maybe Bool -> Maybe Bool -> Maybe Bool -> NetworkPeering)
-> Parser (Maybe Bool)
-> Parser (Maybe Bool -> Maybe Bool -> NetworkPeering)
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 Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"exchangeSubnetRoutes"
Parser (Maybe Bool -> Maybe Bool -> NetworkPeering)
-> Parser (Maybe Bool) -> Parser (Maybe Bool -> NetworkPeering)
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 Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"exportCustomRoutes"
Parser (Maybe Bool -> NetworkPeering)
-> Parser (Maybe Bool) -> Parser NetworkPeering
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 Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"importCustomRoutes"
instance ToJSON NetworkPeering where
toJSON :: NetworkPeering -> Value
toJSON NetworkPeering{Maybe Bool
Maybe Text
Text
$sel:name:NetworkPeering :: NetworkPeering -> Text
$sel:network:NetworkPeering :: NetworkPeering -> Text
$sel:state:NetworkPeering :: NetworkPeering -> Text
$sel:stateDetails:NetworkPeering :: NetworkPeering -> Maybe Text
$sel:exchangeSubnetRoutes:NetworkPeering :: NetworkPeering -> Maybe Bool
$sel:exportCustomRoutes:NetworkPeering :: NetworkPeering -> Maybe Bool
$sel:importCustomRoutes:NetworkPeering :: NetworkPeering -> Maybe Bool
name :: Text
network :: Text
state :: Text
stateDetails :: Maybe Text
exchangeSubnetRoutes :: Maybe Bool
exportCustomRoutes :: Maybe Bool
importCustomRoutes :: Maybe Bool
..} = [Pair] -> Value
object ([Pair] -> Value) -> [Pair] -> Value
forall a b. (a -> b) -> a -> b
$ [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
catMaybes
[ Pair -> Maybe Pair
forall a. a -> Maybe a
Just (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
name)
, Pair -> Maybe Pair
forall a. a -> Maybe a
Just (Key
"network" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text
network)
, Pair -> Maybe Pair
forall a. a -> Maybe a
Just (Key
"state" Key -> Text -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text
state)
, (Key
"stateDetails" 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
stateDetails
, (Key
"exchangeSubnetRoutes" 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
<$> Maybe Bool
exchangeSubnetRoutes
, (Key
"exportCustomRoutes" 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
<$> Maybe Bool
exportCustomRoutes
, (Key
"importCustomRoutes" 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
<$> Maybe Bool
importCustomRoutes
]
data ListNetworksQuery = ListNetworksQuery
{ ListNetworksQuery -> Maybe String
filter_ :: Maybe String
, ListNetworksQuery -> Maybe Int
maxResults :: Maybe Int
, ListNetworksQuery -> Maybe String
orderBy :: Maybe String
, ListNetworksQuery -> Maybe String
pageToken :: Maybe String
, ListNetworksQuery -> Maybe Bool
returnPartialSuccess :: Maybe Bool
} deriving (Int -> ListNetworksQuery -> ShowS
[ListNetworksQuery] -> ShowS
ListNetworksQuery -> String
(Int -> ListNetworksQuery -> ShowS)
-> (ListNetworksQuery -> String)
-> ([ListNetworksQuery] -> ShowS)
-> Show ListNetworksQuery
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ListNetworksQuery -> ShowS
showsPrec :: Int -> ListNetworksQuery -> ShowS
$cshow :: ListNetworksQuery -> String
show :: ListNetworksQuery -> String
$cshowList :: [ListNetworksQuery] -> ShowS
showList :: [ListNetworksQuery] -> ShowS
Show)
defaultListNetworksQuery :: ListNetworksQuery
defaultListNetworksQuery :: ListNetworksQuery
defaultListNetworksQuery = ListNetworksQuery
{ $sel:filter_:ListNetworksQuery :: Maybe String
filter_ = Maybe String
forall a. Maybe a
Nothing
, $sel:maxResults:ListNetworksQuery :: Maybe Int
maxResults = Maybe Int
forall a. Maybe a
Nothing
, $sel:orderBy:ListNetworksQuery :: Maybe String
orderBy = Maybe String
forall a. Maybe a
Nothing
, $sel:pageToken:ListNetworksQuery :: Maybe String
pageToken = Maybe String
forall a. Maybe a
Nothing
, $sel:returnPartialSuccess:ListNetworksQuery :: Maybe Bool
returnPartialSuccess = Maybe Bool
forall a. Maybe a
Nothing
}
listNetworks ::
String
-> Maybe ListNetworksQuery
-> IO (Either String NetworkList)
listNetworks :: String -> Maybe ListNetworksQuery -> IO (Either String NetworkList)
listNetworks String
project Maybe ListNetworksQuery
mbQuery = do
let queryParams :: [(ByteString, Maybe ByteString)]
queryParams = [(ByteString, Maybe ByteString)]
-> (ListNetworksQuery -> [(ByteString, Maybe ByteString)])
-> Maybe ListNetworksQuery
-> [(ByteString, Maybe ByteString)]
forall b a. b -> (a -> b) -> Maybe a -> b
maybe [] ListNetworksQuery -> [(ByteString, Maybe ByteString)]
toQueryList Maybe ListNetworksQuery
mbQuery
RequestOptions -> IO (Either String NetworkList)
forall b. FromJSON b => RequestOptions -> IO (Either String b)
doRequestJSON
RequestOptions
{ reqMethod :: RequestMethod
reqMethod = RequestMethod
GET
, reqUrl :: String
reqUrl = String
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 String
mbReqPath = String -> Maybe String
forall a. a -> Maybe a
Just (String -> Maybe String) -> String -> Maybe String
forall a b. (a -> b) -> a -> b
$ [String] -> String
toPath
[ String
"projects"
, String
project
, String
"global"
, String
"networks"
]
}
where
toQueryList :: ListNetworksQuery -> [(BS8.ByteString, Maybe BS8.ByteString)]
toQueryList :: ListNetworksQuery -> [(ByteString, Maybe ByteString)]
toQueryList ListNetworksQuery{Maybe Bool
Maybe Int
Maybe String
$sel:filter_:ListNetworksQuery :: ListNetworksQuery -> Maybe String
$sel:maxResults:ListNetworksQuery :: ListNetworksQuery -> Maybe Int
$sel:orderBy:ListNetworksQuery :: ListNetworksQuery -> Maybe String
$sel:pageToken:ListNetworksQuery :: ListNetworksQuery -> Maybe String
$sel:returnPartialSuccess:ListNetworksQuery :: ListNetworksQuery -> Maybe Bool
filter_ :: Maybe String
maxResults :: Maybe Int
orderBy :: Maybe String
pageToken :: Maybe String
returnPartialSuccess :: Maybe Bool
..} =
[Maybe (ByteString, Maybe ByteString)]
-> [(ByteString, Maybe ByteString)]
forall a. [Maybe a] -> [a]
catMaybes
[ (ByteString
"filter",) (Maybe ByteString -> (ByteString, Maybe ByteString))
-> (String -> Maybe ByteString)
-> String
-> (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)
-> (String -> ByteString) -> String -> Maybe ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> ByteString
BS8.pack (String -> (ByteString, Maybe ByteString))
-> Maybe String -> Maybe (ByteString, Maybe ByteString)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe String
filter_
, (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
. String -> ByteString
BS8.pack (String -> ByteString) -> (Int -> String) -> Int -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> String
forall a. Show a => a -> String
show (Int -> (ByteString, Maybe ByteString))
-> Maybe Int -> Maybe (ByteString, Maybe ByteString)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe Int
maxResults
, (ByteString
"orderBy",) (Maybe ByteString -> (ByteString, Maybe ByteString))
-> (String -> Maybe ByteString)
-> String
-> (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)
-> (String -> ByteString) -> String -> Maybe ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> ByteString
BS8.pack (String -> (ByteString, Maybe ByteString))
-> Maybe String -> Maybe (ByteString, Maybe ByteString)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe String
orderBy
, (ByteString
"pageToken",) (Maybe ByteString -> (ByteString, Maybe ByteString))
-> (String -> Maybe ByteString)
-> String
-> (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)
-> (String -> ByteString) -> String -> Maybe ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> ByteString
BS8.pack (String -> (ByteString, Maybe ByteString))
-> Maybe String -> Maybe (ByteString, Maybe ByteString)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe String
pageToken
, (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
. String -> ByteString
BS8.pack (String -> ByteString) -> (Bool -> String) -> Bool -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> String
forall a. Show a => a -> String
show (Bool -> (ByteString, Maybe ByteString))
-> Maybe Bool -> Maybe (ByteString, Maybe ByteString)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe Bool
returnPartialSuccess
]