{-# 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 getSetupAttempts module StripeAPI.Operations.GetSetupAttempts 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/setup_attempts -- -- \

Returns a list of SetupAttempts associated with a provided SetupIntent.\<\/p> getSetupAttempts :: forall m. StripeAPI.Common.MonadHTTP m => -- | Contains all available parameters of this operation (query and path parameters) GetSetupAttemptsParameters -> -- | Monadic computation which returns the result of the operation StripeAPI.Common.ClientT m (Network.HTTP.Client.Types.Response GetSetupAttemptsResponse) getSetupAttempts parameters = GHC.Base.fmap ( \response_0 -> GHC.Base.fmap ( Data.Either.either GetSetupAttemptsResponseError GHC.Base.id GHC.Base.. ( \response body -> if | (\status_1 -> Network.HTTP.Types.Status.statusCode status_1 GHC.Classes.== 200) (Network.HTTP.Client.Types.responseStatus response) -> GetSetupAttemptsResponse200 Data.Functor.<$> ( Data.Aeson.eitherDecodeStrict body :: Data.Either.Either GHC.Base.String GetSetupAttemptsResponseBody200 ) | GHC.Base.const GHC.Types.True (Network.HTTP.Client.Types.responseStatus response) -> GetSetupAttemptsResponseDefault Data.Functor.<$> ( Data.Aeson.eitherDecodeStrict body :: Data.Either.Either GHC.Base.String Error ) | GHC.Base.otherwise -> Data.Either.Left "Missing default response type" ) response_0 ) response_0 ) ( StripeAPI.Common.doCallWithConfigurationM (Data.Text.toUpper GHC.Base.$ Data.Text.pack "GET") (Data.Text.pack "/v1/setup_attempts") [ StripeAPI.Common.QueryParameter (Data.Text.pack "created") (Data.Aeson.Types.ToJSON.toJSON Data.Functor.<$> getSetupAttemptsParametersQueryCreated parameters) (Data.Text.pack "deepObject") GHC.Types.True, StripeAPI.Common.QueryParameter (Data.Text.pack "ending_before") (Data.Aeson.Types.ToJSON.toJSON Data.Functor.<$> getSetupAttemptsParametersQueryEndingBefore parameters) (Data.Text.pack "form") GHC.Types.True, StripeAPI.Common.QueryParameter (Data.Text.pack "expand") (Data.Aeson.Types.ToJSON.toJSON Data.Functor.<$> getSetupAttemptsParametersQueryExpand parameters) (Data.Text.pack "deepObject") GHC.Types.True, StripeAPI.Common.QueryParameter (Data.Text.pack "limit") (Data.Aeson.Types.ToJSON.toJSON Data.Functor.<$> getSetupAttemptsParametersQueryLimit parameters) (Data.Text.pack "form") GHC.Types.True, StripeAPI.Common.QueryParameter (Data.Text.pack "setup_intent") (GHC.Maybe.Just GHC.Base.$ Data.Aeson.Types.ToJSON.toJSON (getSetupAttemptsParametersQuerySetupIntent parameters)) (Data.Text.pack "form") GHC.Types.True, StripeAPI.Common.QueryParameter (Data.Text.pack "starting_after") (Data.Aeson.Types.ToJSON.toJSON Data.Functor.<$> getSetupAttemptsParametersQueryStartingAfter parameters) (Data.Text.pack "form") GHC.Types.True ] ) -- | Defines the object schema located at @paths.\/v1\/setup_attempts.GET.parameters@ in the specification. data GetSetupAttemptsParameters = GetSetupAttemptsParameters { -- | queryCreated: Represents the parameter named \'created\' -- -- A filter on the list, based on the object \`created\` field. The value -- can be a string with an integer Unix timestamp, or it can be a -- dictionary with a number of different query options. getSetupAttemptsParametersQueryCreated :: (GHC.Maybe.Maybe GetSetupAttemptsParametersQueryCreated'Variants), -- | 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 getSetupAttemptsParametersQueryEndingBefore :: (GHC.Maybe.Maybe Data.Text.Internal.Text), -- | queryExpand: Represents the parameter named \'expand\' -- -- Specifies which fields in the response should be expanded. getSetupAttemptsParametersQueryExpand :: (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. getSetupAttemptsParametersQueryLimit :: (GHC.Maybe.Maybe GHC.Types.Int), -- | querySetup_intent: Represents the parameter named \'setup_intent\' -- -- Only return SetupAttempts created by the SetupIntent specified by -- this ID. -- -- Constraints: -- -- * Maximum length of 5000 getSetupAttemptsParametersQuerySetupIntent :: 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 getSetupAttemptsParametersQueryStartingAfter :: (GHC.Maybe.Maybe Data.Text.Internal.Text) } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON GetSetupAttemptsParameters where toJSON obj = Data.Aeson.Types.Internal.object ("queryCreated" Data.Aeson.Types.ToJSON..= getSetupAttemptsParametersQueryCreated obj : "queryEnding_before" Data.Aeson.Types.ToJSON..= getSetupAttemptsParametersQueryEndingBefore obj : "queryExpand" Data.Aeson.Types.ToJSON..= getSetupAttemptsParametersQueryExpand obj : "queryLimit" Data.Aeson.Types.ToJSON..= getSetupAttemptsParametersQueryLimit obj : "querySetup_intent" Data.Aeson.Types.ToJSON..= getSetupAttemptsParametersQuerySetupIntent obj : "queryStarting_after" Data.Aeson.Types.ToJSON..= getSetupAttemptsParametersQueryStartingAfter obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("queryCreated" Data.Aeson.Types.ToJSON..= getSetupAttemptsParametersQueryCreated obj) GHC.Base.<> (("queryEnding_before" Data.Aeson.Types.ToJSON..= getSetupAttemptsParametersQueryEndingBefore obj) GHC.Base.<> (("queryExpand" Data.Aeson.Types.ToJSON..= getSetupAttemptsParametersQueryExpand obj) GHC.Base.<> (("queryLimit" Data.Aeson.Types.ToJSON..= getSetupAttemptsParametersQueryLimit obj) GHC.Base.<> (("querySetup_intent" Data.Aeson.Types.ToJSON..= getSetupAttemptsParametersQuerySetupIntent obj) GHC.Base.<> ("queryStarting_after" Data.Aeson.Types.ToJSON..= getSetupAttemptsParametersQueryStartingAfter obj)))))) instance Data.Aeson.Types.FromJSON.FromJSON GetSetupAttemptsParameters where parseJSON = Data.Aeson.Types.FromJSON.withObject "GetSetupAttemptsParameters" (\obj -> (((((GHC.Base.pure GetSetupAttemptsParameters GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "queryCreated")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "queryEnding_before")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "queryExpand")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "queryLimit")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "querySetup_intent")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "queryStarting_after")) -- | Create a new 'GetSetupAttemptsParameters' with all required fields. mkGetSetupAttemptsParameters :: -- | 'getSetupAttemptsParametersQuerySetupIntent' Data.Text.Internal.Text -> GetSetupAttemptsParameters mkGetSetupAttemptsParameters getSetupAttemptsParametersQuerySetupIntent = GetSetupAttemptsParameters { getSetupAttemptsParametersQueryCreated = GHC.Maybe.Nothing, getSetupAttemptsParametersQueryEndingBefore = GHC.Maybe.Nothing, getSetupAttemptsParametersQueryExpand = GHC.Maybe.Nothing, getSetupAttemptsParametersQueryLimit = GHC.Maybe.Nothing, getSetupAttemptsParametersQuerySetupIntent = getSetupAttemptsParametersQuerySetupIntent, getSetupAttemptsParametersQueryStartingAfter = GHC.Maybe.Nothing } -- | Defines the object schema located at @paths.\/v1\/setup_attempts.GET.parameters.properties.queryCreated.anyOf@ in the specification. data GetSetupAttemptsParametersQueryCreated'OneOf1 = GetSetupAttemptsParametersQueryCreated'OneOf1 { -- | gt getSetupAttemptsParametersQueryCreated'OneOf1Gt :: (GHC.Maybe.Maybe GHC.Types.Int), -- | gte getSetupAttemptsParametersQueryCreated'OneOf1Gte :: (GHC.Maybe.Maybe GHC.Types.Int), -- | lt getSetupAttemptsParametersQueryCreated'OneOf1Lt :: (GHC.Maybe.Maybe GHC.Types.Int), -- | lte getSetupAttemptsParametersQueryCreated'OneOf1Lte :: (GHC.Maybe.Maybe GHC.Types.Int) } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON GetSetupAttemptsParametersQueryCreated'OneOf1 where toJSON obj = Data.Aeson.Types.Internal.object ("gt" Data.Aeson.Types.ToJSON..= getSetupAttemptsParametersQueryCreated'OneOf1Gt obj : "gte" Data.Aeson.Types.ToJSON..= getSetupAttemptsParametersQueryCreated'OneOf1Gte obj : "lt" Data.Aeson.Types.ToJSON..= getSetupAttemptsParametersQueryCreated'OneOf1Lt obj : "lte" Data.Aeson.Types.ToJSON..= getSetupAttemptsParametersQueryCreated'OneOf1Lte obj : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("gt" Data.Aeson.Types.ToJSON..= getSetupAttemptsParametersQueryCreated'OneOf1Gt obj) GHC.Base.<> (("gte" Data.Aeson.Types.ToJSON..= getSetupAttemptsParametersQueryCreated'OneOf1Gte obj) GHC.Base.<> (("lt" Data.Aeson.Types.ToJSON..= getSetupAttemptsParametersQueryCreated'OneOf1Lt obj) GHC.Base.<> ("lte" Data.Aeson.Types.ToJSON..= getSetupAttemptsParametersQueryCreated'OneOf1Lte obj)))) instance Data.Aeson.Types.FromJSON.FromJSON GetSetupAttemptsParametersQueryCreated'OneOf1 where parseJSON = Data.Aeson.Types.FromJSON.withObject "GetSetupAttemptsParametersQueryCreated'OneOf1" (\obj -> (((GHC.Base.pure GetSetupAttemptsParametersQueryCreated'OneOf1 GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "gt")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "gte")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "lt")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..:? "lte")) -- | Create a new 'GetSetupAttemptsParametersQueryCreated'OneOf1' with all required fields. mkGetSetupAttemptsParametersQueryCreated'OneOf1 :: GetSetupAttemptsParametersQueryCreated'OneOf1 mkGetSetupAttemptsParametersQueryCreated'OneOf1 = GetSetupAttemptsParametersQueryCreated'OneOf1 { getSetupAttemptsParametersQueryCreated'OneOf1Gt = GHC.Maybe.Nothing, getSetupAttemptsParametersQueryCreated'OneOf1Gte = GHC.Maybe.Nothing, getSetupAttemptsParametersQueryCreated'OneOf1Lt = GHC.Maybe.Nothing, getSetupAttemptsParametersQueryCreated'OneOf1Lte = GHC.Maybe.Nothing } -- | Defines the oneOf schema located at @paths.\/v1\/setup_attempts.GET.parameters.properties.queryCreated.anyOf@ in the specification. -- -- Represents the parameter named \'created\' -- -- A filter on the list, based on the object \`created\` field. The value -- can be a string with an integer Unix timestamp, or it can be a -- dictionary with a number of different query options. data GetSetupAttemptsParametersQueryCreated'Variants = GetSetupAttemptsParametersQueryCreated'GetSetupAttemptsParametersQueryCreated'OneOf1 GetSetupAttemptsParametersQueryCreated'OneOf1 | GetSetupAttemptsParametersQueryCreated'Int GHC.Types.Int deriving (GHC.Show.Show, GHC.Classes.Eq) instance Data.Aeson.Types.ToJSON.ToJSON GetSetupAttemptsParametersQueryCreated'Variants where toJSON (GetSetupAttemptsParametersQueryCreated'GetSetupAttemptsParametersQueryCreated'OneOf1 a) = Data.Aeson.Types.ToJSON.toJSON a toJSON (GetSetupAttemptsParametersQueryCreated'Int a) = Data.Aeson.Types.ToJSON.toJSON a instance Data.Aeson.Types.FromJSON.FromJSON GetSetupAttemptsParametersQueryCreated'Variants where parseJSON val = case (GetSetupAttemptsParametersQueryCreated'GetSetupAttemptsParametersQueryCreated'OneOf1 Data.Functor.<$> Data.Aeson.Types.FromJSON.fromJSON val) GHC.Base.<|> ((GetSetupAttemptsParametersQueryCreated'Int Data.Functor.<$> Data.Aeson.Types.FromJSON.fromJSON val) GHC.Base.<|> Data.Aeson.Types.Internal.Error "No variant matched") of Data.Aeson.Types.Internal.Success a -> GHC.Base.pure a Data.Aeson.Types.Internal.Error a -> Control.Monad.Fail.fail a -- | Represents a response of the operation 'getSetupAttempts'. -- -- 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), 'GetSetupAttemptsResponseError' is used. data GetSetupAttemptsResponse = -- | Means either no matching case available or a parse error GetSetupAttemptsResponseError GHC.Base.String | -- | Successful response. GetSetupAttemptsResponse200 GetSetupAttemptsResponseBody200 | -- | Error response. GetSetupAttemptsResponseDefault Error deriving (GHC.Show.Show, GHC.Classes.Eq) -- | Defines the object schema located at @paths.\/v1\/setup_attempts.GET.responses.200.content.application\/json.schema@ in the specification. data GetSetupAttemptsResponseBody200 = GetSetupAttemptsResponseBody200 { -- | data getSetupAttemptsResponseBody200Data :: ([SetupAttempt]), -- | has_more: True if this list has another page of items after this one that can be fetched. getSetupAttemptsResponseBody200HasMore :: GHC.Types.Bool, -- | url: The URL where this list can be accessed. -- -- Constraints: -- -- * Maximum length of 5000 -- * Must match pattern \'^\/v1\/setup_attempts\' getSetupAttemptsResponseBody200Url :: Data.Text.Internal.Text } deriving ( GHC.Show.Show, GHC.Classes.Eq ) instance Data.Aeson.Types.ToJSON.ToJSON GetSetupAttemptsResponseBody200 where toJSON obj = Data.Aeson.Types.Internal.object ("data" Data.Aeson.Types.ToJSON..= getSetupAttemptsResponseBody200Data obj : "has_more" Data.Aeson.Types.ToJSON..= getSetupAttemptsResponseBody200HasMore obj : "url" Data.Aeson.Types.ToJSON..= getSetupAttemptsResponseBody200Url obj : "object" Data.Aeson.Types.ToJSON..= Data.Aeson.Types.Internal.String "list" : GHC.Base.mempty) toEncoding obj = Data.Aeson.Encoding.Internal.pairs (("data" Data.Aeson.Types.ToJSON..= getSetupAttemptsResponseBody200Data obj) GHC.Base.<> (("has_more" Data.Aeson.Types.ToJSON..= getSetupAttemptsResponseBody200HasMore obj) GHC.Base.<> (("url" Data.Aeson.Types.ToJSON..= getSetupAttemptsResponseBody200Url obj) GHC.Base.<> ("object" Data.Aeson.Types.ToJSON..= Data.Aeson.Types.Internal.String "list")))) instance Data.Aeson.Types.FromJSON.FromJSON GetSetupAttemptsResponseBody200 where parseJSON = Data.Aeson.Types.FromJSON.withObject "GetSetupAttemptsResponseBody200" (\obj -> ((GHC.Base.pure GetSetupAttemptsResponseBody200 GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "data")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "has_more")) GHC.Base.<*> (obj Data.Aeson.Types.FromJSON..: "url")) -- | Create a new 'GetSetupAttemptsResponseBody200' with all required fields. mkGetSetupAttemptsResponseBody200 :: -- | 'getSetupAttemptsResponseBody200Data' [SetupAttempt] -> -- | 'getSetupAttemptsResponseBody200HasMore' GHC.Types.Bool -> -- | 'getSetupAttemptsResponseBody200Url' Data.Text.Internal.Text -> GetSetupAttemptsResponseBody200 mkGetSetupAttemptsResponseBody200 getSetupAttemptsResponseBody200Data getSetupAttemptsResponseBody200HasMore getSetupAttemptsResponseBody200Url = GetSetupAttemptsResponseBody200 { getSetupAttemptsResponseBody200Data = getSetupAttemptsResponseBody200Data, getSetupAttemptsResponseBody200HasMore = getSetupAttemptsResponseBody200HasMore, getSetupAttemptsResponseBody200Url = getSetupAttemptsResponseBody200Url }