{-# LANGUAGE ExplicitForAll #-}
{-# LANGUAGE MultiWayIf #-}
-- CHANGE WITH CAUTION: This is a generated code file generated by https://github.com/Haskell-OpenAPI-Code-Generator/Haskell-OpenAPI-Client-Code-Generator.
{-# LANGUAGE OverloadedStrings #-}

-- | Contains the different functions to run the operation getRadarEarlyFraudWarnings
module StripeAPI.Operations.GetRadarEarlyFraudWarnings where

import qualified Control.Monad.Fail
import qualified Control.Monad.Trans.Reader
import qualified Data.Aeson
import qualified Data.Aeson as Data.Aeson.Encoding.Internal
import qualified Data.Aeson as Data.Aeson.Types
import qualified Data.Aeson as Data.Aeson.Types.FromJSON
import qualified Data.Aeson as Data.Aeson.Types.Internal
import qualified Data.Aeson as Data.Aeson.Types.ToJSON
import qualified Data.ByteString.Char8
import qualified Data.ByteString.Char8 as Data.ByteString.Internal
import qualified Data.Either
import qualified Data.Functor
import qualified Data.Scientific
import qualified Data.Text
import qualified Data.Text.Internal
import qualified Data.Time.Calendar as Data.Time.Calendar.Days
import qualified Data.Time.LocalTime as Data.Time.LocalTime.Internal.ZonedTime
import qualified Data.Vector
import qualified GHC.Base
import qualified GHC.Classes
import qualified GHC.Int
import qualified GHC.Show
import qualified GHC.Types
import qualified Network.HTTP.Client
import qualified Network.HTTP.Client as Network.HTTP.Client.Request
import qualified Network.HTTP.Client as Network.HTTP.Client.Types
import qualified Network.HTTP.Simple
import qualified Network.HTTP.Types
import qualified Network.HTTP.Types as Network.HTTP.Types.Status
import qualified Network.HTTP.Types as Network.HTTP.Types.URI
import qualified StripeAPI.Common
import StripeAPI.Types
import qualified Prelude as GHC.Integer.Type
import qualified Prelude as GHC.Maybe

-- | > GET /v1/radar/early_fraud_warnings
--
-- \<p>Returns a list of early fraud warnings.\<\/p>
getRadarEarlyFraudWarnings ::
  forall m.
  StripeAPI.Common.MonadHTTP m =>
  -- | Contains all available parameters of this operation (query and path parameters)
  GetRadarEarlyFraudWarningsParameters ->
  -- | Monadic computation which returns the result of the operation
  StripeAPI.Common.StripeT m (Network.HTTP.Client.Types.Response GetRadarEarlyFraudWarningsResponse)
getRadarEarlyFraudWarnings :: GetRadarEarlyFraudWarningsParameters
-> StripeT m (Response GetRadarEarlyFraudWarningsResponse)
getRadarEarlyFraudWarnings GetRadarEarlyFraudWarningsParameters
parameters =
  (Response ByteString
 -> Response GetRadarEarlyFraudWarningsResponse)
-> StripeT m (Response ByteString)
-> StripeT m (Response GetRadarEarlyFraudWarningsResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
    ( \Response ByteString
response_0 ->
        (ByteString -> GetRadarEarlyFraudWarningsResponse)
-> Response ByteString
-> Response GetRadarEarlyFraudWarningsResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
          ( (String -> GetRadarEarlyFraudWarningsResponse)
-> (GetRadarEarlyFraudWarningsResponse
    -> GetRadarEarlyFraudWarningsResponse)
-> Either String GetRadarEarlyFraudWarningsResponse
-> GetRadarEarlyFraudWarningsResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
Data.Either.either String -> GetRadarEarlyFraudWarningsResponse
GetRadarEarlyFraudWarningsResponseError GetRadarEarlyFraudWarningsResponse
-> GetRadarEarlyFraudWarningsResponse
forall a. a -> a
GHC.Base.id
              (Either String GetRadarEarlyFraudWarningsResponse
 -> GetRadarEarlyFraudWarningsResponse)
-> (ByteString -> Either String GetRadarEarlyFraudWarningsResponse)
-> ByteString
-> GetRadarEarlyFraudWarningsResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
GHC.Base.. ( \Response ByteString
response ByteString
body ->
                             if
                                 | (\Status
status_1 -> Status -> Int
Network.HTTP.Types.Status.statusCode Status
status_1 Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Int
200) (Response ByteString -> Status
forall body. Response body -> Status
Network.HTTP.Client.Types.responseStatus Response ByteString
response) ->
                                   GetRadarEarlyFraudWarningsResponseBody200
-> GetRadarEarlyFraudWarningsResponse
GetRadarEarlyFraudWarningsResponse200
                                     (GetRadarEarlyFraudWarningsResponseBody200
 -> GetRadarEarlyFraudWarningsResponse)
-> Either String GetRadarEarlyFraudWarningsResponseBody200
-> Either String GetRadarEarlyFraudWarningsResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> ( ByteString
-> Either String GetRadarEarlyFraudWarningsResponseBody200
forall a. FromJSON a => ByteString -> Either String a
Data.Aeson.eitherDecodeStrict ByteString
body ::
                                                          Data.Either.Either
                                                            GHC.Base.String
                                                            GetRadarEarlyFraudWarningsResponseBody200
                                                      )
                                 | Bool -> Status -> Bool
forall a b. a -> b -> a
GHC.Base.const Bool
GHC.Types.True (Response ByteString -> Status
forall body. Response body -> Status
Network.HTTP.Client.Types.responseStatus Response ByteString
response) ->
                                   Error -> GetRadarEarlyFraudWarningsResponse
GetRadarEarlyFraudWarningsResponseDefault
                                     (Error -> GetRadarEarlyFraudWarningsResponse)
-> Either String Error
-> Either String GetRadarEarlyFraudWarningsResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> ( ByteString -> Either String Error
forall a. FromJSON a => ByteString -> Either String a
Data.Aeson.eitherDecodeStrict ByteString
body ::
                                                          Data.Either.Either
                                                            GHC.Base.String
                                                            Error
                                                      )
                                 | Bool
GHC.Base.otherwise -> String -> Either String GetRadarEarlyFraudWarningsResponse
forall a b. a -> Either a b
Data.Either.Left String
"Missing default response type"
                         )
                Response ByteString
response_0
          )
          Response ByteString
response_0
    )
    ( Text -> Text -> [QueryParameter] -> StripeT m (Response ByteString)
forall (m :: * -> *).
MonadHTTP m =>
Text -> Text -> [QueryParameter] -> StripeT m (Response ByteString)
StripeAPI.Common.doCallWithConfigurationM
        (Text -> Text
Data.Text.toUpper (Text -> Text) -> Text -> Text
forall a b. (a -> b) -> a -> b
GHC.Base.$ String -> Text
Data.Text.pack String
"GET")
        (String -> Text
Data.Text.pack String
"/v1/radar/early_fraud_warnings")
        [ Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"charge") (Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (Text -> Value) -> Maybe Text -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetRadarEarlyFraudWarningsParameters -> Maybe Text
getRadarEarlyFraudWarningsParametersQueryCharge GetRadarEarlyFraudWarningsParameters
parameters) (String -> Text
Data.Text.pack String
"form") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"ending_before") (Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (Text -> Value) -> Maybe Text -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetRadarEarlyFraudWarningsParameters -> Maybe Text
getRadarEarlyFraudWarningsParametersQueryEndingBefore GetRadarEarlyFraudWarningsParameters
parameters) (String -> Text
Data.Text.pack String
"form") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"expand") ([Text] -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON ([Text] -> Value) -> Maybe [Text] -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetRadarEarlyFraudWarningsParameters -> Maybe [Text]
getRadarEarlyFraudWarningsParametersQueryExpand GetRadarEarlyFraudWarningsParameters
parameters) (String -> Text
Data.Text.pack String
"deepObject") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"limit") (Int -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (Int -> Value) -> Maybe Int -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetRadarEarlyFraudWarningsParameters -> Maybe Int
getRadarEarlyFraudWarningsParametersQueryLimit GetRadarEarlyFraudWarningsParameters
parameters) (String -> Text
Data.Text.pack String
"form") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"payment_intent") (Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (Text -> Value) -> Maybe Text -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetRadarEarlyFraudWarningsParameters -> Maybe Text
getRadarEarlyFraudWarningsParametersQueryPaymentIntent GetRadarEarlyFraudWarningsParameters
parameters) (String -> Text
Data.Text.pack String
"form") Bool
GHC.Types.True,
          Text -> Maybe Value -> Text -> Bool -> QueryParameter
StripeAPI.Common.QueryParameter (String -> Text
Data.Text.pack String
"starting_after") (Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON (Text -> Value) -> Maybe Text -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> GetRadarEarlyFraudWarningsParameters -> Maybe Text
getRadarEarlyFraudWarningsParametersQueryStartingAfter GetRadarEarlyFraudWarningsParameters
parameters) (String -> Text
Data.Text.pack String
"form") Bool
GHC.Types.True
        ]
    )

-- | Defines the object schema located at @paths.\/v1\/radar\/early_fraud_warnings.GET.parameters@ in the specification.
data GetRadarEarlyFraudWarningsParameters = GetRadarEarlyFraudWarningsParameters
  { -- | queryCharge: Represents the parameter named \'charge\'
    --
    -- Only return early fraud warnings for the charge specified by this charge ID.
    GetRadarEarlyFraudWarningsParameters -> Maybe Text
getRadarEarlyFraudWarningsParametersQueryCharge :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | queryEnding_before: Represents the parameter named \'ending_before\'
    --
    -- A cursor for use in pagination. \`ending_before\` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with \`obj_bar\`, your subsequent call can include \`ending_before=obj_bar\` in order to fetch the previous page of the list.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetRadarEarlyFraudWarningsParameters -> Maybe Text
getRadarEarlyFraudWarningsParametersQueryEndingBefore :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | queryExpand: Represents the parameter named \'expand\'
    --
    -- Specifies which fields in the response should be expanded.
    GetRadarEarlyFraudWarningsParameters -> Maybe [Text]
getRadarEarlyFraudWarningsParametersQueryExpand :: (GHC.Maybe.Maybe ([Data.Text.Internal.Text])),
    -- | queryLimit: Represents the parameter named \'limit\'
    --
    -- A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.
    GetRadarEarlyFraudWarningsParameters -> Maybe Int
getRadarEarlyFraudWarningsParametersQueryLimit :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | queryPayment_intent: Represents the parameter named \'payment_intent\'
    --
    -- Only return early fraud warnings for charges that were created by the PaymentIntent specified by this PaymentIntent ID.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetRadarEarlyFraudWarningsParameters -> Maybe Text
getRadarEarlyFraudWarningsParametersQueryPaymentIntent :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | queryStarting_after: Represents the parameter named \'starting_after\'
    --
    -- A cursor for use in pagination. \`starting_after\` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with \`obj_foo\`, your subsequent call can include \`starting_after=obj_foo\` in order to fetch the next page of the list.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    GetRadarEarlyFraudWarningsParameters -> Maybe Text
getRadarEarlyFraudWarningsParametersQueryStartingAfter :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int -> GetRadarEarlyFraudWarningsParameters -> ShowS
[GetRadarEarlyFraudWarningsParameters] -> ShowS
GetRadarEarlyFraudWarningsParameters -> String
(Int -> GetRadarEarlyFraudWarningsParameters -> ShowS)
-> (GetRadarEarlyFraudWarningsParameters -> String)
-> ([GetRadarEarlyFraudWarningsParameters] -> ShowS)
-> Show GetRadarEarlyFraudWarningsParameters
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetRadarEarlyFraudWarningsParameters] -> ShowS
$cshowList :: [GetRadarEarlyFraudWarningsParameters] -> ShowS
show :: GetRadarEarlyFraudWarningsParameters -> String
$cshow :: GetRadarEarlyFraudWarningsParameters -> String
showsPrec :: Int -> GetRadarEarlyFraudWarningsParameters -> ShowS
$cshowsPrec :: Int -> GetRadarEarlyFraudWarningsParameters -> ShowS
GHC.Show.Show,
      GetRadarEarlyFraudWarningsParameters
-> GetRadarEarlyFraudWarningsParameters -> Bool
(GetRadarEarlyFraudWarningsParameters
 -> GetRadarEarlyFraudWarningsParameters -> Bool)
-> (GetRadarEarlyFraudWarningsParameters
    -> GetRadarEarlyFraudWarningsParameters -> Bool)
-> Eq GetRadarEarlyFraudWarningsParameters
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetRadarEarlyFraudWarningsParameters
-> GetRadarEarlyFraudWarningsParameters -> Bool
$c/= :: GetRadarEarlyFraudWarningsParameters
-> GetRadarEarlyFraudWarningsParameters -> Bool
== :: GetRadarEarlyFraudWarningsParameters
-> GetRadarEarlyFraudWarningsParameters -> Bool
$c== :: GetRadarEarlyFraudWarningsParameters
-> GetRadarEarlyFraudWarningsParameters -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON GetRadarEarlyFraudWarningsParameters where
  toJSON :: GetRadarEarlyFraudWarningsParameters -> Value
toJSON GetRadarEarlyFraudWarningsParameters
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"queryCharge" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRadarEarlyFraudWarningsParameters -> Maybe Text
getRadarEarlyFraudWarningsParametersQueryCharge GetRadarEarlyFraudWarningsParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"queryEnding_before" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRadarEarlyFraudWarningsParameters -> Maybe Text
getRadarEarlyFraudWarningsParametersQueryEndingBefore GetRadarEarlyFraudWarningsParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"queryExpand" Text -> Maybe [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRadarEarlyFraudWarningsParameters -> Maybe [Text]
getRadarEarlyFraudWarningsParametersQueryExpand GetRadarEarlyFraudWarningsParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"queryLimit" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRadarEarlyFraudWarningsParameters -> Maybe Int
getRadarEarlyFraudWarningsParametersQueryLimit GetRadarEarlyFraudWarningsParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"queryPayment_intent" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRadarEarlyFraudWarningsParameters -> Maybe Text
getRadarEarlyFraudWarningsParametersQueryPaymentIntent GetRadarEarlyFraudWarningsParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"queryStarting_after" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRadarEarlyFraudWarningsParameters -> Maybe Text
getRadarEarlyFraudWarningsParametersQueryStartingAfter GetRadarEarlyFraudWarningsParameters
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: GetRadarEarlyFraudWarningsParameters -> Encoding
toEncoding GetRadarEarlyFraudWarningsParameters
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"queryCharge" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRadarEarlyFraudWarningsParameters -> Maybe Text
getRadarEarlyFraudWarningsParametersQueryCharge GetRadarEarlyFraudWarningsParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"queryEnding_before" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRadarEarlyFraudWarningsParameters -> Maybe Text
getRadarEarlyFraudWarningsParametersQueryEndingBefore GetRadarEarlyFraudWarningsParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"queryExpand" Text -> Maybe [Text] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRadarEarlyFraudWarningsParameters -> Maybe [Text]
getRadarEarlyFraudWarningsParametersQueryExpand GetRadarEarlyFraudWarningsParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"queryLimit" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRadarEarlyFraudWarningsParameters -> Maybe Int
getRadarEarlyFraudWarningsParametersQueryLimit GetRadarEarlyFraudWarningsParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"queryPayment_intent" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRadarEarlyFraudWarningsParameters -> Maybe Text
getRadarEarlyFraudWarningsParametersQueryPaymentIntent GetRadarEarlyFraudWarningsParameters
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"queryStarting_after" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRadarEarlyFraudWarningsParameters -> Maybe Text
getRadarEarlyFraudWarningsParametersQueryStartingAfter GetRadarEarlyFraudWarningsParameters
obj))))))

instance Data.Aeson.Types.FromJSON.FromJSON GetRadarEarlyFraudWarningsParameters where
  parseJSON :: Value -> Parser GetRadarEarlyFraudWarningsParameters
parseJSON = String
-> (Object -> Parser GetRadarEarlyFraudWarningsParameters)
-> Value
-> Parser GetRadarEarlyFraudWarningsParameters
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"GetRadarEarlyFraudWarningsParameters" (\Object
obj -> ((((((Maybe Text
 -> Maybe Text
 -> Maybe [Text]
 -> Maybe Int
 -> Maybe Text
 -> Maybe Text
 -> GetRadarEarlyFraudWarningsParameters)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe [Text]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> GetRadarEarlyFraudWarningsParameters)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe Text
-> Maybe [Text]
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> GetRadarEarlyFraudWarningsParameters
GetRadarEarlyFraudWarningsParameters Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe [Text]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> GetRadarEarlyFraudWarningsParameters)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe [Text]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> GetRadarEarlyFraudWarningsParameters)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"queryCharge")) Parser
  (Maybe Text
   -> Maybe [Text]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> GetRadarEarlyFraudWarningsParameters)
-> Parser (Maybe Text)
-> Parser
     (Maybe [Text]
      -> Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> GetRadarEarlyFraudWarningsParameters)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"queryEnding_before")) Parser
  (Maybe [Text]
   -> Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> GetRadarEarlyFraudWarningsParameters)
-> Parser (Maybe [Text])
-> Parser
     (Maybe Int
      -> Maybe Text
      -> Maybe Text
      -> GetRadarEarlyFraudWarningsParameters)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe [Text])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"queryExpand")) Parser
  (Maybe Int
   -> Maybe Text
   -> Maybe Text
   -> GetRadarEarlyFraudWarningsParameters)
-> Parser (Maybe Int)
-> Parser
     (Maybe Text -> Maybe Text -> GetRadarEarlyFraudWarningsParameters)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"queryLimit")) Parser
  (Maybe Text -> Maybe Text -> GetRadarEarlyFraudWarningsParameters)
-> Parser (Maybe Text)
-> Parser (Maybe Text -> GetRadarEarlyFraudWarningsParameters)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"queryPayment_intent")) Parser (Maybe Text -> GetRadarEarlyFraudWarningsParameters)
-> Parser (Maybe Text)
-> Parser GetRadarEarlyFraudWarningsParameters
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"queryStarting_after"))

-- | Create a new 'GetRadarEarlyFraudWarningsParameters' with all required fields.
mkGetRadarEarlyFraudWarningsParameters :: GetRadarEarlyFraudWarningsParameters
mkGetRadarEarlyFraudWarningsParameters :: GetRadarEarlyFraudWarningsParameters
mkGetRadarEarlyFraudWarningsParameters =
  GetRadarEarlyFraudWarningsParameters :: Maybe Text
-> Maybe Text
-> Maybe [Text]
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> GetRadarEarlyFraudWarningsParameters
GetRadarEarlyFraudWarningsParameters
    { getRadarEarlyFraudWarningsParametersQueryCharge :: Maybe Text
getRadarEarlyFraudWarningsParametersQueryCharge = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getRadarEarlyFraudWarningsParametersQueryEndingBefore :: Maybe Text
getRadarEarlyFraudWarningsParametersQueryEndingBefore = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getRadarEarlyFraudWarningsParametersQueryExpand :: Maybe [Text]
getRadarEarlyFraudWarningsParametersQueryExpand = Maybe [Text]
forall a. Maybe a
GHC.Maybe.Nothing,
      getRadarEarlyFraudWarningsParametersQueryLimit :: Maybe Int
getRadarEarlyFraudWarningsParametersQueryLimit = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      getRadarEarlyFraudWarningsParametersQueryPaymentIntent :: Maybe Text
getRadarEarlyFraudWarningsParametersQueryPaymentIntent = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      getRadarEarlyFraudWarningsParametersQueryStartingAfter :: Maybe Text
getRadarEarlyFraudWarningsParametersQueryStartingAfter = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Represents a response of the operation 'getRadarEarlyFraudWarnings'.
--
-- The response constructor is chosen by the status code of the response. If no case matches (no specific case for the response code, no range case, no default case), 'GetRadarEarlyFraudWarningsResponseError' is used.
data GetRadarEarlyFraudWarningsResponse
  = -- | Means either no matching case available or a parse error
    GetRadarEarlyFraudWarningsResponseError GHC.Base.String
  | -- | Successful response.
    GetRadarEarlyFraudWarningsResponse200 GetRadarEarlyFraudWarningsResponseBody200
  | -- | Error response.
    GetRadarEarlyFraudWarningsResponseDefault Error
  deriving (Int -> GetRadarEarlyFraudWarningsResponse -> ShowS
[GetRadarEarlyFraudWarningsResponse] -> ShowS
GetRadarEarlyFraudWarningsResponse -> String
(Int -> GetRadarEarlyFraudWarningsResponse -> ShowS)
-> (GetRadarEarlyFraudWarningsResponse -> String)
-> ([GetRadarEarlyFraudWarningsResponse] -> ShowS)
-> Show GetRadarEarlyFraudWarningsResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetRadarEarlyFraudWarningsResponse] -> ShowS
$cshowList :: [GetRadarEarlyFraudWarningsResponse] -> ShowS
show :: GetRadarEarlyFraudWarningsResponse -> String
$cshow :: GetRadarEarlyFraudWarningsResponse -> String
showsPrec :: Int -> GetRadarEarlyFraudWarningsResponse -> ShowS
$cshowsPrec :: Int -> GetRadarEarlyFraudWarningsResponse -> ShowS
GHC.Show.Show, GetRadarEarlyFraudWarningsResponse
-> GetRadarEarlyFraudWarningsResponse -> Bool
(GetRadarEarlyFraudWarningsResponse
 -> GetRadarEarlyFraudWarningsResponse -> Bool)
-> (GetRadarEarlyFraudWarningsResponse
    -> GetRadarEarlyFraudWarningsResponse -> Bool)
-> Eq GetRadarEarlyFraudWarningsResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetRadarEarlyFraudWarningsResponse
-> GetRadarEarlyFraudWarningsResponse -> Bool
$c/= :: GetRadarEarlyFraudWarningsResponse
-> GetRadarEarlyFraudWarningsResponse -> Bool
== :: GetRadarEarlyFraudWarningsResponse
-> GetRadarEarlyFraudWarningsResponse -> Bool
$c== :: GetRadarEarlyFraudWarningsResponse
-> GetRadarEarlyFraudWarningsResponse -> Bool
GHC.Classes.Eq)

-- | Defines the object schema located at @paths.\/v1\/radar\/early_fraud_warnings.GET.responses.200.content.application\/json.schema@ in the specification.
data GetRadarEarlyFraudWarningsResponseBody200 = GetRadarEarlyFraudWarningsResponseBody200
  { -- | data
    GetRadarEarlyFraudWarningsResponseBody200
-> [Radar'earlyFraudWarning]
getRadarEarlyFraudWarningsResponseBody200Data :: ([Radar'earlyFraudWarning]),
    -- | has_more: True if this list has another page of items after this one that can be fetched.
    GetRadarEarlyFraudWarningsResponseBody200 -> Bool
getRadarEarlyFraudWarningsResponseBody200HasMore :: GHC.Types.Bool,
    -- | url: The URL where this list can be accessed.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    -- * Must match pattern \'^\/v1\/radar\/early_fraud_warnings\'
    GetRadarEarlyFraudWarningsResponseBody200 -> Text
getRadarEarlyFraudWarningsResponseBody200Url :: Data.Text.Internal.Text
  }
  deriving
    ( Int -> GetRadarEarlyFraudWarningsResponseBody200 -> ShowS
[GetRadarEarlyFraudWarningsResponseBody200] -> ShowS
GetRadarEarlyFraudWarningsResponseBody200 -> String
(Int -> GetRadarEarlyFraudWarningsResponseBody200 -> ShowS)
-> (GetRadarEarlyFraudWarningsResponseBody200 -> String)
-> ([GetRadarEarlyFraudWarningsResponseBody200] -> ShowS)
-> Show GetRadarEarlyFraudWarningsResponseBody200
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetRadarEarlyFraudWarningsResponseBody200] -> ShowS
$cshowList :: [GetRadarEarlyFraudWarningsResponseBody200] -> ShowS
show :: GetRadarEarlyFraudWarningsResponseBody200 -> String
$cshow :: GetRadarEarlyFraudWarningsResponseBody200 -> String
showsPrec :: Int -> GetRadarEarlyFraudWarningsResponseBody200 -> ShowS
$cshowsPrec :: Int -> GetRadarEarlyFraudWarningsResponseBody200 -> ShowS
GHC.Show.Show,
      GetRadarEarlyFraudWarningsResponseBody200
-> GetRadarEarlyFraudWarningsResponseBody200 -> Bool
(GetRadarEarlyFraudWarningsResponseBody200
 -> GetRadarEarlyFraudWarningsResponseBody200 -> Bool)
-> (GetRadarEarlyFraudWarningsResponseBody200
    -> GetRadarEarlyFraudWarningsResponseBody200 -> Bool)
-> Eq GetRadarEarlyFraudWarningsResponseBody200
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetRadarEarlyFraudWarningsResponseBody200
-> GetRadarEarlyFraudWarningsResponseBody200 -> Bool
$c/= :: GetRadarEarlyFraudWarningsResponseBody200
-> GetRadarEarlyFraudWarningsResponseBody200 -> Bool
== :: GetRadarEarlyFraudWarningsResponseBody200
-> GetRadarEarlyFraudWarningsResponseBody200 -> Bool
$c== :: GetRadarEarlyFraudWarningsResponseBody200
-> GetRadarEarlyFraudWarningsResponseBody200 -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON GetRadarEarlyFraudWarningsResponseBody200 where
  toJSON :: GetRadarEarlyFraudWarningsResponseBody200 -> Value
toJSON GetRadarEarlyFraudWarningsResponseBody200
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"data" Text -> [Radar'earlyFraudWarning] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRadarEarlyFraudWarningsResponseBody200
-> [Radar'earlyFraudWarning]
getRadarEarlyFraudWarningsResponseBody200Data GetRadarEarlyFraudWarningsResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"has_more" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRadarEarlyFraudWarningsResponseBody200 -> Bool
getRadarEarlyFraudWarningsResponseBody200HasMore GetRadarEarlyFraudWarningsResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"url" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRadarEarlyFraudWarningsResponseBody200 -> Text
getRadarEarlyFraudWarningsResponseBody200Url GetRadarEarlyFraudWarningsResponseBody200
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"object" Text -> Value -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Text -> Value
Data.Aeson.Types.Internal.String Text
"list" Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: GetRadarEarlyFraudWarningsResponseBody200 -> Encoding
toEncoding GetRadarEarlyFraudWarningsResponseBody200
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"data" Text -> [Radar'earlyFraudWarning] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRadarEarlyFraudWarningsResponseBody200
-> [Radar'earlyFraudWarning]
getRadarEarlyFraudWarningsResponseBody200Data GetRadarEarlyFraudWarningsResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"has_more" Text -> Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRadarEarlyFraudWarningsResponseBody200 -> Bool
getRadarEarlyFraudWarningsResponseBody200HasMore GetRadarEarlyFraudWarningsResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"url" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= GetRadarEarlyFraudWarningsResponseBody200 -> Text
getRadarEarlyFraudWarningsResponseBody200Url GetRadarEarlyFraudWarningsResponseBody200
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"object" Text -> Value -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= Text -> Value
Data.Aeson.Types.Internal.String Text
"list"))))

instance Data.Aeson.Types.FromJSON.FromJSON GetRadarEarlyFraudWarningsResponseBody200 where
  parseJSON :: Value -> Parser GetRadarEarlyFraudWarningsResponseBody200
parseJSON = String
-> (Object -> Parser GetRadarEarlyFraudWarningsResponseBody200)
-> Value
-> Parser GetRadarEarlyFraudWarningsResponseBody200
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"GetRadarEarlyFraudWarningsResponseBody200" (\Object
obj -> ((([Radar'earlyFraudWarning]
 -> Bool -> Text -> GetRadarEarlyFraudWarningsResponseBody200)
-> Parser
     ([Radar'earlyFraudWarning]
      -> Bool -> Text -> GetRadarEarlyFraudWarningsResponseBody200)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure [Radar'earlyFraudWarning]
-> Bool -> Text -> GetRadarEarlyFraudWarningsResponseBody200
GetRadarEarlyFraudWarningsResponseBody200 Parser
  ([Radar'earlyFraudWarning]
   -> Bool -> Text -> GetRadarEarlyFraudWarningsResponseBody200)
-> Parser [Radar'earlyFraudWarning]
-> Parser
     (Bool -> Text -> GetRadarEarlyFraudWarningsResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser [Radar'earlyFraudWarning]
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"data")) Parser (Bool -> Text -> GetRadarEarlyFraudWarningsResponseBody200)
-> Parser Bool
-> Parser (Text -> GetRadarEarlyFraudWarningsResponseBody200)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Bool
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"has_more")) Parser (Text -> GetRadarEarlyFraudWarningsResponseBody200)
-> Parser Text -> Parser GetRadarEarlyFraudWarningsResponseBody200
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Text
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"url"))

-- | Create a new 'GetRadarEarlyFraudWarningsResponseBody200' with all required fields.
mkGetRadarEarlyFraudWarningsResponseBody200 ::
  -- | 'getRadarEarlyFraudWarningsResponseBody200Data'
  [Radar'earlyFraudWarning] ->
  -- | 'getRadarEarlyFraudWarningsResponseBody200HasMore'
  GHC.Types.Bool ->
  -- | 'getRadarEarlyFraudWarningsResponseBody200Url'
  Data.Text.Internal.Text ->
  GetRadarEarlyFraudWarningsResponseBody200
mkGetRadarEarlyFraudWarningsResponseBody200 :: [Radar'earlyFraudWarning]
-> Bool -> Text -> GetRadarEarlyFraudWarningsResponseBody200
mkGetRadarEarlyFraudWarningsResponseBody200 [Radar'earlyFraudWarning]
getRadarEarlyFraudWarningsResponseBody200Data Bool
getRadarEarlyFraudWarningsResponseBody200HasMore Text
getRadarEarlyFraudWarningsResponseBody200Url =
  GetRadarEarlyFraudWarningsResponseBody200 :: [Radar'earlyFraudWarning]
-> Bool -> Text -> GetRadarEarlyFraudWarningsResponseBody200
GetRadarEarlyFraudWarningsResponseBody200
    { getRadarEarlyFraudWarningsResponseBody200Data :: [Radar'earlyFraudWarning]
getRadarEarlyFraudWarningsResponseBody200Data = [Radar'earlyFraudWarning]
getRadarEarlyFraudWarningsResponseBody200Data,
      getRadarEarlyFraudWarningsResponseBody200HasMore :: Bool
getRadarEarlyFraudWarningsResponseBody200HasMore = Bool
getRadarEarlyFraudWarningsResponseBody200HasMore,
      getRadarEarlyFraudWarningsResponseBody200Url :: Text
getRadarEarlyFraudWarningsResponseBody200Url = Text
getRadarEarlyFraudWarningsResponseBody200Url
    }