{-# 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 postSubscriptionSchedulesSchedule
module StripeAPI.Operations.PostSubscriptionSchedulesSchedule 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

-- | > POST /v1/subscription_schedules/{schedule}
--
-- \<p>Updates an existing subscription schedule.\<\/p>
postSubscriptionSchedulesSchedule ::
  forall m.
  StripeAPI.Common.MonadHTTP m =>
  -- | schedule | Constraints: Maximum length of 5000
  Data.Text.Internal.Text ->
  -- | The request body to send
  GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBody ->
  -- | Monadic computation which returns the result of the operation
  StripeAPI.Common.ClientT m (Network.HTTP.Client.Types.Response PostSubscriptionSchedulesScheduleResponse)
postSubscriptionSchedulesSchedule :: Text
-> Maybe PostSubscriptionSchedulesScheduleRequestBody
-> ClientT m (Response PostSubscriptionSchedulesScheduleResponse)
postSubscriptionSchedulesSchedule
  Text
schedule
  Maybe PostSubscriptionSchedulesScheduleRequestBody
body =
    (Response ByteString
 -> Response PostSubscriptionSchedulesScheduleResponse)
-> ClientT m (Response ByteString)
-> ClientT m (Response PostSubscriptionSchedulesScheduleResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
      ( \Response ByteString
response_0 ->
          (ByteString -> PostSubscriptionSchedulesScheduleResponse)
-> Response ByteString
-> Response PostSubscriptionSchedulesScheduleResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
            ( (String -> PostSubscriptionSchedulesScheduleResponse)
-> (PostSubscriptionSchedulesScheduleResponse
    -> PostSubscriptionSchedulesScheduleResponse)
-> Either String PostSubscriptionSchedulesScheduleResponse
-> PostSubscriptionSchedulesScheduleResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
Data.Either.either String -> PostSubscriptionSchedulesScheduleResponse
PostSubscriptionSchedulesScheduleResponseError PostSubscriptionSchedulesScheduleResponse
-> PostSubscriptionSchedulesScheduleResponse
forall a. a -> a
GHC.Base.id
                (Either String PostSubscriptionSchedulesScheduleResponse
 -> PostSubscriptionSchedulesScheduleResponse)
-> (ByteString
    -> Either String PostSubscriptionSchedulesScheduleResponse)
-> ByteString
-> PostSubscriptionSchedulesScheduleResponse
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) ->
                                     SubscriptionSchedule -> PostSubscriptionSchedulesScheduleResponse
PostSubscriptionSchedulesScheduleResponse200
                                       (SubscriptionSchedule -> PostSubscriptionSchedulesScheduleResponse)
-> Either String SubscriptionSchedule
-> Either String PostSubscriptionSchedulesScheduleResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> ( ByteString -> Either String SubscriptionSchedule
forall a. FromJSON a => ByteString -> Either String a
Data.Aeson.eitherDecodeStrict ByteString
body ::
                                                            Data.Either.Either
                                                              GHC.Base.String
                                                              SubscriptionSchedule
                                                        )
                                   | 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 -> PostSubscriptionSchedulesScheduleResponse
PostSubscriptionSchedulesScheduleResponseDefault
                                       (Error -> PostSubscriptionSchedulesScheduleResponse)
-> Either String Error
-> Either String PostSubscriptionSchedulesScheduleResponse
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 PostSubscriptionSchedulesScheduleResponse
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]
-> Maybe PostSubscriptionSchedulesScheduleRequestBody
-> RequestBodyEncoding
-> ClientT m (Response ByteString)
forall (m :: * -> *) body.
(MonadHTTP m, ToJSON body) =>
Text
-> Text
-> [QueryParameter]
-> Maybe body
-> RequestBodyEncoding
-> ClientT m (Response ByteString)
StripeAPI.Common.doBodyCallWithConfigurationM (Text -> Text
Data.Text.toUpper (Text -> Text) -> Text -> Text
forall a b. (a -> b) -> a -> b
GHC.Base.$ String -> Text
Data.Text.pack String
"POST") (String -> Text
Data.Text.pack (String
"/v1/subscription_schedules/" String -> String -> String
forall a. [a] -> [a] -> [a]
GHC.Base.++ (ByteString -> String
Data.ByteString.Char8.unpack (Bool -> ByteString -> ByteString
Network.HTTP.Types.URI.urlEncode Bool
GHC.Types.True (ByteString -> ByteString) -> ByteString -> ByteString
forall a b. (a -> b) -> a -> b
GHC.Base.$ (String -> ByteString
Data.ByteString.Char8.pack (String -> ByteString) -> String -> ByteString
forall a b. (a -> b) -> a -> b
GHC.Base.$ Text -> String
forall a. StringifyModel a => a -> String
StripeAPI.Common.stringifyModel Text
schedule)) String -> String -> String
forall a. [a] -> [a] -> [a]
GHC.Base.++ String
""))) [QueryParameter]
forall a. Monoid a => a
GHC.Base.mempty Maybe PostSubscriptionSchedulesScheduleRequestBody
body RequestBodyEncoding
StripeAPI.Common.RequestBodyEncodingFormData)

-- | Defines the object schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBody = PostSubscriptionSchedulesScheduleRequestBody
  { -- | default_settings: Object representing the subscription schedule\'s default settings.
    PostSubscriptionSchedulesScheduleRequestBody
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'),
    -- | end_behavior: Configures how the subscription schedule behaves when it ends. Possible values are \`release\` or \`cancel\` with the default being \`release\`. \`release\` will end the subscription schedule and keep the underlying subscription running.\`cancel\` will end the subscription schedule and cancel the underlying subscription.
    PostSubscriptionSchedulesScheduleRequestBody
-> Maybe PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
postSubscriptionSchedulesScheduleRequestBodyEndBehavior :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'),
    -- | expand: Specifies which fields in the response should be expanded.
    PostSubscriptionSchedulesScheduleRequestBody -> Maybe [Text]
postSubscriptionSchedulesScheduleRequestBodyExpand :: (GHC.Maybe.Maybe ([Data.Text.Internal.Text])),
    -- | metadata: Set of [key-value pairs](https:\/\/stripe.com\/docs\/api\/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to \`metadata\`.
    PostSubscriptionSchedulesScheduleRequestBody
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
postSubscriptionSchedulesScheduleRequestBodyMetadata :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants),
    -- | phases: List representing phases of the subscription schedule. Each phase can be customized to have different durations, plans, and coupons. If there are multiple phases, the \`end_date\` of one phase will always equal the \`start_date\` of the next phase. Note that past phases can be omitted.
    PostSubscriptionSchedulesScheduleRequestBody
-> Maybe [PostSubscriptionSchedulesScheduleRequestBodyPhases']
postSubscriptionSchedulesScheduleRequestBodyPhases :: (GHC.Maybe.Maybe ([PostSubscriptionSchedulesScheduleRequestBodyPhases'])),
    -- | proration_behavior: If the update changes the current phase, indicates if the changes should be prorated. Possible values are \`create_prorations\` or \`none\`, and the default value is \`create_prorations\`.
    PostSubscriptionSchedulesScheduleRequestBody
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
postSubscriptionSchedulesScheduleRequestBodyProrationBehavior :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior')
  }
  deriving
    ( Int
-> PostSubscriptionSchedulesScheduleRequestBody -> String -> String
[PostSubscriptionSchedulesScheduleRequestBody] -> String -> String
PostSubscriptionSchedulesScheduleRequestBody -> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBody
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBody -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBody]
    -> String -> String)
-> Show PostSubscriptionSchedulesScheduleRequestBody
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBody] -> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBody] -> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBody -> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBody -> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBody -> String -> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBody -> String -> String
GHC.Show.Show,
      PostSubscriptionSchedulesScheduleRequestBody
-> PostSubscriptionSchedulesScheduleRequestBody -> Bool
(PostSubscriptionSchedulesScheduleRequestBody
 -> PostSubscriptionSchedulesScheduleRequestBody -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBody
    -> PostSubscriptionSchedulesScheduleRequestBody -> Bool)
-> Eq PostSubscriptionSchedulesScheduleRequestBody
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBody
-> PostSubscriptionSchedulesScheduleRequestBody -> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBody
-> PostSubscriptionSchedulesScheduleRequestBody -> Bool
== :: PostSubscriptionSchedulesScheduleRequestBody
-> PostSubscriptionSchedulesScheduleRequestBody -> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBody
-> PostSubscriptionSchedulesScheduleRequestBody -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBody where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBody -> Value
toJSON PostSubscriptionSchedulesScheduleRequestBody
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"default_settings" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBody
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings PostSubscriptionSchedulesScheduleRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"end_behavior" Text
-> Maybe PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBody
-> Maybe PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
postSubscriptionSchedulesScheduleRequestBodyEndBehavior PostSubscriptionSchedulesScheduleRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"expand" Text -> Maybe [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBody -> Maybe [Text]
postSubscriptionSchedulesScheduleRequestBodyExpand PostSubscriptionSchedulesScheduleRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"metadata" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBody
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
postSubscriptionSchedulesScheduleRequestBodyMetadata PostSubscriptionSchedulesScheduleRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"phases" Text
-> Maybe [PostSubscriptionSchedulesScheduleRequestBodyPhases']
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBody
-> Maybe [PostSubscriptionSchedulesScheduleRequestBodyPhases']
postSubscriptionSchedulesScheduleRequestBodyPhases PostSubscriptionSchedulesScheduleRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"proration_behavior" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBody
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
postSubscriptionSchedulesScheduleRequestBodyProrationBehavior PostSubscriptionSchedulesScheduleRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesScheduleRequestBody -> Encoding
toEncoding PostSubscriptionSchedulesScheduleRequestBody
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"default_settings" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBody
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings PostSubscriptionSchedulesScheduleRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"end_behavior" Text
-> Maybe PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBody
-> Maybe PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
postSubscriptionSchedulesScheduleRequestBodyEndBehavior PostSubscriptionSchedulesScheduleRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"expand" Text -> Maybe [Text] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBody -> Maybe [Text]
postSubscriptionSchedulesScheduleRequestBodyExpand PostSubscriptionSchedulesScheduleRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"metadata" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBody
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
postSubscriptionSchedulesScheduleRequestBodyMetadata PostSubscriptionSchedulesScheduleRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"phases" Text
-> Maybe [PostSubscriptionSchedulesScheduleRequestBodyPhases']
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBody
-> Maybe [PostSubscriptionSchedulesScheduleRequestBodyPhases']
postSubscriptionSchedulesScheduleRequestBodyPhases PostSubscriptionSchedulesScheduleRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"proration_behavior" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBody
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
postSubscriptionSchedulesScheduleRequestBodyProrationBehavior PostSubscriptionSchedulesScheduleRequestBody
obj))))))

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBody where
  parseJSON :: Value -> Parser PostSubscriptionSchedulesScheduleRequestBody
parseJSON = String
-> (Object -> Parser PostSubscriptionSchedulesScheduleRequestBody)
-> Value
-> Parser PostSubscriptionSchedulesScheduleRequestBody
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesScheduleRequestBody" (\Object
obj -> ((((((Maybe PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
 -> Maybe PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
 -> Maybe [Text]
 -> Maybe
      PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
 -> Maybe [PostSubscriptionSchedulesScheduleRequestBodyPhases']
 -> Maybe
      PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
 -> PostSubscriptionSchedulesScheduleRequestBody)
-> Parser
     (Maybe PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
      -> Maybe PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
      -> Maybe [Text]
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
      -> Maybe [PostSubscriptionSchedulesScheduleRequestBodyPhases']
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
      -> PostSubscriptionSchedulesScheduleRequestBody)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Maybe PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
-> Maybe [Text]
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
-> Maybe [PostSubscriptionSchedulesScheduleRequestBodyPhases']
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
-> PostSubscriptionSchedulesScheduleRequestBody
PostSubscriptionSchedulesScheduleRequestBody Parser
  (Maybe PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
   -> Maybe PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
   -> Maybe [Text]
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
   -> Maybe [PostSubscriptionSchedulesScheduleRequestBodyPhases']
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
   -> PostSubscriptionSchedulesScheduleRequestBody)
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings')
-> Parser
     (Maybe PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
      -> Maybe [Text]
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
      -> Maybe [PostSubscriptionSchedulesScheduleRequestBodyPhases']
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
      -> PostSubscriptionSchedulesScheduleRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"default_settings")) Parser
  (Maybe PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
   -> Maybe [Text]
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
   -> Maybe [PostSubscriptionSchedulesScheduleRequestBodyPhases']
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
   -> PostSubscriptionSchedulesScheduleRequestBody)
-> Parser
     (Maybe PostSubscriptionSchedulesScheduleRequestBodyEndBehavior')
-> Parser
     (Maybe [Text]
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
      -> Maybe [PostSubscriptionSchedulesScheduleRequestBodyPhases']
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
      -> PostSubscriptionSchedulesScheduleRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe PostSubscriptionSchedulesScheduleRequestBodyEndBehavior')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"end_behavior")) Parser
  (Maybe [Text]
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
   -> Maybe [PostSubscriptionSchedulesScheduleRequestBodyPhases']
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
   -> PostSubscriptionSchedulesScheduleRequestBody)
-> Parser (Maybe [Text])
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
      -> Maybe [PostSubscriptionSchedulesScheduleRequestBodyPhases']
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
      -> PostSubscriptionSchedulesScheduleRequestBody)
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
"expand")) Parser
  (Maybe
     PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
   -> Maybe [PostSubscriptionSchedulesScheduleRequestBodyPhases']
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
   -> PostSubscriptionSchedulesScheduleRequestBody)
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants)
-> Parser
     (Maybe [PostSubscriptionSchedulesScheduleRequestBodyPhases']
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
      -> PostSubscriptionSchedulesScheduleRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"metadata")) Parser
  (Maybe [PostSubscriptionSchedulesScheduleRequestBodyPhases']
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
   -> PostSubscriptionSchedulesScheduleRequestBody)
-> Parser
     (Maybe [PostSubscriptionSchedulesScheduleRequestBodyPhases'])
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
      -> PostSubscriptionSchedulesScheduleRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe [PostSubscriptionSchedulesScheduleRequestBodyPhases'])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"phases")) Parser
  (Maybe
     PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
   -> PostSubscriptionSchedulesScheduleRequestBody)
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior')
-> Parser PostSubscriptionSchedulesScheduleRequestBody
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"proration_behavior"))

-- | Create a new 'PostSubscriptionSchedulesScheduleRequestBody' with all required fields.
mkPostSubscriptionSchedulesScheduleRequestBody :: PostSubscriptionSchedulesScheduleRequestBody
mkPostSubscriptionSchedulesScheduleRequestBody :: PostSubscriptionSchedulesScheduleRequestBody
mkPostSubscriptionSchedulesScheduleRequestBody =
  PostSubscriptionSchedulesScheduleRequestBody :: Maybe PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Maybe PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
-> Maybe [Text]
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
-> Maybe [PostSubscriptionSchedulesScheduleRequestBodyPhases']
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
-> PostSubscriptionSchedulesScheduleRequestBody
PostSubscriptionSchedulesScheduleRequestBody
    { postSubscriptionSchedulesScheduleRequestBodyDefaultSettings :: Maybe PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings = Maybe PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyEndBehavior :: Maybe PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
postSubscriptionSchedulesScheduleRequestBodyEndBehavior = Maybe PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyExpand :: Maybe [Text]
postSubscriptionSchedulesScheduleRequestBodyExpand = Maybe [Text]
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyMetadata :: Maybe PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
postSubscriptionSchedulesScheduleRequestBodyMetadata = Maybe PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases :: Maybe [PostSubscriptionSchedulesScheduleRequestBodyPhases']
postSubscriptionSchedulesScheduleRequestBodyPhases = Maybe [PostSubscriptionSchedulesScheduleRequestBodyPhases']
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyProrationBehavior :: Maybe
  PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
postSubscriptionSchedulesScheduleRequestBodyProrationBehavior = Maybe
  PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.default_settings@ in the specification.
--
-- Object representing the subscription schedule\'s default settings.
data PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings' = PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
  { -- | application_fee_percent
    PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Maybe Double
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'ApplicationFeePercent :: (GHC.Maybe.Maybe GHC.Types.Double),
    -- | automatic_tax
    PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'),
    -- | billing_cycle_anchor
    PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'),
    -- | billing_thresholds
    PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants),
    -- | collection_method
    PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'),
    -- | default_payment_method
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Maybe Text
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'DefaultPaymentMethod :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | invoice_settings
    PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'),
    -- | transfer_data
    PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants)
  }
  deriving
    ( Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings']
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings']
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings']
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings']
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> String
-> String
GHC.Show.Show,
      PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
 -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
    -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
    -> Bool)
-> Eq PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings' where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Value
toJSON PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"application_fee_percent" Text -> Maybe Double -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Maybe Double
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'ApplicationFeePercent PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"automatic_tax" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"billing_cycle_anchor" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"billing_thresholds" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"collection_method" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"default_payment_method" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Maybe Text
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'DefaultPaymentMethod PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"invoice_settings" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"transfer_data" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Encoding
toEncoding PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"application_fee_percent" Text -> Maybe Double -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Maybe Double
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'ApplicationFeePercent PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"automatic_tax" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"billing_cycle_anchor" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"billing_thresholds" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"collection_method" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"default_payment_method" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Maybe Text
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'DefaultPaymentMethod PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"invoice_settings" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"transfer_data" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
obj))))))))

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
parseJSON = String
-> (Object
    -> Parser
         PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings')
-> Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'" (\Object
obj -> ((((((((Maybe Double
 -> Maybe
      PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
 -> Maybe
      PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
 -> Maybe
      PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
 -> Maybe
      PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
 -> Maybe Text
 -> Maybe
      PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
 -> Maybe
      PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
 -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings')
-> Parser
     (Maybe Double
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
      -> Maybe Text
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Double
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
-> Maybe Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings' Parser
  (Maybe Double
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
   -> Maybe Text
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings')
-> Parser (Maybe Double)
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
      -> Maybe Text
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Double)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"application_fee_percent")) Parser
  (Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
   -> Maybe Text
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
      -> Maybe Text
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"automatic_tax")) Parser
  (Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
   -> Maybe Text
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
      -> Maybe Text
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"billing_cycle_anchor")) Parser
  (Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
   -> Maybe Text
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants)
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
      -> Maybe Text
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"billing_thresholds")) Parser
  (Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
   -> Maybe Text
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod')
-> Parser
     (Maybe Text
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"collection_method")) Parser
  (Maybe Text
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings')
-> Parser (Maybe Text)
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings')
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
"default_payment_method")) Parser
  (Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"invoice_settings")) Parser
  (Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants)
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"transfer_data"))

-- | Create a new 'PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'' with all required fields.
mkPostSubscriptionSchedulesScheduleRequestBodyDefaultSettings' :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
mkPostSubscriptionSchedulesScheduleRequestBodyDefaultSettings' :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
mkPostSubscriptionSchedulesScheduleRequestBodyDefaultSettings' =
  PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings' :: Maybe Double
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
-> Maybe Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'
    { postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'ApplicationFeePercent :: Maybe Double
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'ApplicationFeePercent = Maybe Double
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax :: Maybe
  PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax = Maybe
  PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor :: Maybe
  PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor = Maybe
  PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds :: Maybe
  PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds = Maybe
  PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod :: Maybe
  PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod = Maybe
  PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'DefaultPaymentMethod :: Maybe Text
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'DefaultPaymentMethod = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings :: Maybe
  PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings = Maybe
  PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData :: Maybe
  PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData = Maybe
  PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.default_settings.properties.automatic_tax@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax' = PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
  { -- | enabled
    PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
-> Bool
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'Enabled :: GHC.Types.Bool
  }
  deriving
    ( Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax']
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax']
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax']
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax']
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
-> String
-> String
GHC.Show.Show,
      PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
 -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
    -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax' where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
-> Value
toJSON PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"enabled" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
-> Bool
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'Enabled PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
-> Encoding
toEncoding PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"enabled" Text -> Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
-> Bool
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'Enabled PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
obj)

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
parseJSON = String
-> (Object
    -> Parser
         PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax')
-> Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'" (\Object
obj -> (Bool
 -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax')
-> Parser
     (Bool
      -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Bool
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax' Parser
  (Bool
   -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax')
-> Parser Bool
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
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
"enabled"))

-- | Create a new 'PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'' with all required fields.
mkPostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax' ::
  -- | 'postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'Enabled'
  GHC.Types.Bool ->
  PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
mkPostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax' :: Bool
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
mkPostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax' Bool
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'Enabled = PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax' :: Bool
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax' {postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'Enabled :: Bool
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'Enabled = Bool
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'AutomaticTax'Enabled}

-- | Defines the enum schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.default_settings.properties.billing_cycle_anchor@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"automatic"@
    PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'EnumAutomatic
  | -- | Represents the JSON value @"phase_start"@
    PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'EnumPhaseStart
  deriving (Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor']
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor']
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor']
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor']
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
-> String
-> String
GHC.Show.Show, PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
 -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
    -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor' where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
-> Value
toJSON (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'Other Value
val) = Value
val
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'EnumAutomatic) = Value
"automatic"
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'EnumPhaseStart) = Value
"phase_start"

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
parseJSON Value
val =
    PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"automatic" -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'EnumAutomatic
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"phase_start" -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'EnumPhaseStart
            | Bool
GHC.Base.otherwise -> Value
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingCycleAnchor'Other Value
val
      )

-- | Defines the object schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.default_settings.properties.billing_thresholds.anyOf@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1 = PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
  { -- | amount_gte
    PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1AmountGte :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | reset_billing_cycle_anchor
    PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> Maybe Bool
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1ResetBillingCycleAnchor :: (GHC.Maybe.Maybe GHC.Types.Bool)
  }
  deriving
    ( Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1]
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1]
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1]
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1]
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> String
-> String
GHC.Show.Show,
      PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
 -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
    -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1 where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> Value
toJSON PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"amount_gte" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1AmountGte PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"reset_billing_cycle_anchor" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> Maybe Bool
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1ResetBillingCycleAnchor PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> Encoding
toEncoding PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"amount_gte" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1AmountGte PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"reset_billing_cycle_anchor" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> Maybe Bool
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1ResetBillingCycleAnchor PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
obj))

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1 where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
parseJSON = String
-> (Object
    -> Parser
         PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1)
-> Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1" (\Object
obj -> ((Maybe Int
 -> Maybe Bool
 -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1)
-> Parser
     (Maybe Int
      -> Maybe Bool
      -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Int
-> Maybe Bool
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1 Parser
  (Maybe Int
   -> Maybe Bool
   -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1)
-> Parser (Maybe Int)
-> Parser
     (Maybe Bool
      -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1)
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
"amount_gte")) Parser
  (Maybe Bool
   -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1)
-> Parser (Maybe Bool)
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"reset_billing_cycle_anchor"))

-- | Create a new 'PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1' with all required fields.
mkPostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1 :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
mkPostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1 :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
mkPostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1 =
  PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1 :: Maybe Int
-> Maybe Bool
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
    { postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1AmountGte :: Maybe Int
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1AmountGte = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1ResetBillingCycleAnchor :: Maybe Bool
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1ResetBillingCycleAnchor = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the oneOf schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.default_settings.properties.billing_thresholds.anyOf@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
  = -- | Represents the JSON value @""@
    PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'EmptyString
  | PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1 PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
  deriving (Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants]
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants]
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants]
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants]
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
-> String
-> String
GHC.Show.Show, PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
 -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
    -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
-> Value
toJSON (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1 PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
a) = PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
a
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'EmptyString) = Value
""

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
parseJSON Value
val =
    if
        | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"" -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'EmptyString
        | Bool
GHC.Base.otherwise -> case (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1 (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
 -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants)
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'OneOf1
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result
  PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched" of
          Data.Aeson.Types.Internal.Success PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
a -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
a
          Data.Aeson.Types.Internal.Error String
a -> String
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'BillingThresholds'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the enum schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.default_settings.properties.collection_method@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"charge_automatically"@
    PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'EnumChargeAutomatically
  | -- | Represents the JSON value @"send_invoice"@
    PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'EnumSendInvoice
  deriving (Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod']
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod']
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod']
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod']
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
-> String
-> String
GHC.Show.Show, PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
 -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
    -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod' where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
-> Value
toJSON (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'Other Value
val) = Value
val
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'EnumChargeAutomatically) = Value
"charge_automatically"
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'EnumSendInvoice) = Value
"send_invoice"

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
parseJSON Value
val =
    PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"charge_automatically" -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'EnumChargeAutomatically
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"send_invoice" -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'EnumSendInvoice
            | Bool
GHC.Base.otherwise -> Value
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'CollectionMethod'Other Value
val
      )

-- | Defines the object schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.default_settings.properties.invoice_settings@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings' = PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
  { -- | days_until_due
    PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
-> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'DaysUntilDue :: (GHC.Maybe.Maybe GHC.Types.Int)
  }
  deriving
    ( Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings']
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings']
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings']
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings']
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
-> String
-> String
GHC.Show.Show,
      PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
 -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
    -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings' where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
-> Value
toJSON PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"days_until_due" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
-> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'DaysUntilDue PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
-> Encoding
toEncoding PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"days_until_due" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
-> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'DaysUntilDue PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
obj)

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
parseJSON = String
-> (Object
    -> Parser
         PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings')
-> Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'" (\Object
obj -> (Maybe Int
 -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings')
-> Parser
     (Maybe Int
      -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings' Parser
  (Maybe Int
   -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings')
-> Parser (Maybe Int)
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
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
"days_until_due"))

-- | Create a new 'PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'' with all required fields.
mkPostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings' :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
mkPostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings' :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
mkPostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings' = PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings' :: Maybe Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings' {postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'DaysUntilDue :: Maybe Int
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'InvoiceSettings'DaysUntilDue = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing}

-- | Defines the object schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.default_settings.properties.transfer_data.anyOf@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1 = PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
  { -- | amount_percent
    PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
-> Maybe Double
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1AmountPercent :: (GHC.Maybe.Maybe GHC.Types.Double),
    -- | destination
    PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
-> Text
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1Destination :: Data.Text.Internal.Text
  }
  deriving
    ( Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1]
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1]
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1]
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1]
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
-> String
-> String
GHC.Show.Show,
      PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
 -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
    -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1 where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
-> Value
toJSON PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"amount_percent" Text -> Maybe Double -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
-> Maybe Double
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1AmountPercent PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"destination" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
-> Text
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1Destination PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
-> Encoding
toEncoding PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"amount_percent" Text -> Maybe Double -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
-> Maybe Double
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1AmountPercent PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"destination" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
-> Text
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1Destination PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
obj))

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1 where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
parseJSON = String
-> (Object
    -> Parser
         PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1)
-> Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1" (\Object
obj -> ((Maybe Double
 -> Text
 -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1)
-> Parser
     (Maybe Double
      -> Text
      -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Double
-> Text
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1 Parser
  (Maybe Double
   -> Text
   -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1)
-> Parser (Maybe Double)
-> Parser
     (Text
      -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Double)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"amount_percent")) Parser
  (Text
   -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1)
-> Parser Text
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
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
"destination"))

-- | Create a new 'PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1' with all required fields.
mkPostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1 ::
  -- | 'postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1Destination'
  Data.Text.Internal.Text ->
  PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
mkPostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1 :: Text
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
mkPostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1 Text
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1Destination =
  PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1 :: Maybe Double
-> Text
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
    { postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1AmountPercent :: Maybe Double
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1AmountPercent = Maybe Double
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1Destination :: Text
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1Destination = Text
postSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1Destination
    }

-- | Defines the oneOf schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.default_settings.properties.transfer_data.anyOf@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
  = -- | Represents the JSON value @""@
    PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'EmptyString
  | PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1 PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
  deriving (Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants]
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants]
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants]
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants]
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
-> String
-> String
GHC.Show.Show, PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
 -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
    -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
-> Value
toJSON (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1 PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
a) = PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
-> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
a
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'EmptyString) = Value
""

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
parseJSON Value
val =
    if
        | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"" -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'EmptyString
        | Bool
GHC.Base.otherwise -> case (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
-> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1 (PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
 -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants)
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'OneOf1
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result
  PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched" of
          Data.Aeson.Types.Internal.Success PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
a -> PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
a
          Data.Aeson.Types.Internal.Error String
a -> String
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyDefaultSettings'TransferData'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the enum schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.end_behavior@ in the specification.
--
-- Configures how the subscription schedule behaves when it ends. Possible values are \`release\` or \`cancel\` with the default being \`release\`. \`release\` will end the subscription schedule and keep the underlying subscription running.\`cancel\` will end the subscription schedule and cancel the underlying subscription.
data PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"cancel"@
    PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'EnumCancel
  | -- | Represents the JSON value @"none"@
    PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'EnumNone
  | -- | Represents the JSON value @"release"@
    PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'EnumRelease
  | -- | Represents the JSON value @"renew"@
    PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'EnumRenew
  deriving (Int
-> PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyEndBehavior']
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyEndBehavior' -> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyEndBehavior']
    -> String -> String)
-> Show PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyEndBehavior']
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyEndBehavior']
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyEndBehavior' -> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyEndBehavior' -> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
-> String
-> String
GHC.Show.Show, PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
-> PostSubscriptionSchedulesScheduleRequestBodyEndBehavior' -> Bool
(PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
 -> PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
    -> PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
    -> Bool)
-> Eq PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
-> PostSubscriptionSchedulesScheduleRequestBodyEndBehavior' -> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
-> PostSubscriptionSchedulesScheduleRequestBodyEndBehavior' -> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
-> PostSubscriptionSchedulesScheduleRequestBodyEndBehavior' -> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
-> PostSubscriptionSchedulesScheduleRequestBodyEndBehavior' -> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyEndBehavior' where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyEndBehavior' -> Value
toJSON (PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'Other Value
val) = Value
val
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'EnumCancel) = Value
"cancel"
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'EnumNone) = Value
"none"
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'EnumRelease) = Value
"release"
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'EnumRenew) = Value
"renew"

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyEndBehavior' where
  parseJSON :: Value
-> Parser PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
parseJSON Value
val =
    PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
-> Parser PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"cancel" -> PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'EnumCancel
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"none" -> PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'EnumNone
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"release" -> PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'EnumRelease
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"renew" -> PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'EnumRenew
            | Bool
GHC.Base.otherwise -> Value -> PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'
PostSubscriptionSchedulesScheduleRequestBodyEndBehavior'Other Value
val
      )

-- | Defines the oneOf schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.metadata.anyOf@ in the specification.
--
-- Set of [key-value pairs](https:\/\/stripe.com\/docs\/api\/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to \`metadata\`.
data PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
  = -- | Represents the JSON value @""@
    PostSubscriptionSchedulesScheduleRequestBodyMetadata'EmptyString
  | PostSubscriptionSchedulesScheduleRequestBodyMetadata'Object Data.Aeson.Types.Internal.Object
  deriving (Int
-> PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants]
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants]
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants]
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants]
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
-> String
-> String
GHC.Show.Show, PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
 -> PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
    -> PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
    -> Bool)
-> Eq PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
-> Value
toJSON (PostSubscriptionSchedulesScheduleRequestBodyMetadata'Object Object
a) = Object -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Object
a
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
PostSubscriptionSchedulesScheduleRequestBodyMetadata'EmptyString) = Value
""

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
parseJSON Value
val =
    if
        | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"" -> PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
PostSubscriptionSchedulesScheduleRequestBodyMetadata'EmptyString
        | Bool
GHC.Base.otherwise -> case (Object
-> PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
PostSubscriptionSchedulesScheduleRequestBodyMetadata'Object (Object
 -> PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants)
-> Result Object
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Object
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result
  PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched" of
          Data.Aeson.Types.Internal.Success PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
a -> PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
a
          Data.Aeson.Types.Internal.Error String
a -> String
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyMetadata'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the object schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyPhases' = PostSubscriptionSchedulesScheduleRequestBodyPhases'
  { -- | add_invoice_items
    PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     [PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems']
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems :: (GHC.Maybe.Maybe ([PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'])),
    -- | application_fee_percent
    PostSubscriptionSchedulesScheduleRequestBodyPhases' -> Maybe Double
postSubscriptionSchedulesScheduleRequestBodyPhases'ApplicationFeePercent :: (GHC.Maybe.Maybe GHC.Types.Double),
    -- | automatic_tax
    PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
postSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'),
    -- | billing_cycle_anchor
    PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
postSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'),
    -- | billing_thresholds
    PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants),
    -- | collection_method
    PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
postSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'),
    -- | coupon
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSubscriptionSchedulesScheduleRequestBodyPhases' -> Maybe Text
postSubscriptionSchedulesScheduleRequestBodyPhases'Coupon :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | default_payment_method
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSubscriptionSchedulesScheduleRequestBodyPhases' -> Maybe Text
postSubscriptionSchedulesScheduleRequestBodyPhases'DefaultPaymentMethod :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | default_tax_rates
    PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants),
    -- | end_date
    PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'EndDate :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants),
    -- | invoice_settings
    PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
postSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'),
    -- | items
    PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
postSubscriptionSchedulesScheduleRequestBodyPhases'Items :: ([PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']),
    -- | iterations
    PostSubscriptionSchedulesScheduleRequestBodyPhases' -> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'Iterations :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | proration_behavior
    PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
postSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'),
    -- | start_date
    PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'StartDate :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants),
    -- | transfer_data
    PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
postSubscriptionSchedulesScheduleRequestBodyPhases'TransferData :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'),
    -- | trial
    PostSubscriptionSchedulesScheduleRequestBodyPhases' -> Maybe Bool
postSubscriptionSchedulesScheduleRequestBodyPhases'Trial :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | trial_end
    PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants)
  }
  deriving
    ( Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyPhases']
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyPhases' -> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases' -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyPhases']
    -> String -> String)
-> Show PostSubscriptionSchedulesScheduleRequestBodyPhases'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases']
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases']
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyPhases' -> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyPhases' -> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> String
-> String
GHC.Show.Show,
      PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases' -> Bool
(PostSubscriptionSchedulesScheduleRequestBodyPhases'
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases' -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'
    -> PostSubscriptionSchedulesScheduleRequestBodyPhases' -> Bool)
-> Eq PostSubscriptionSchedulesScheduleRequestBodyPhases'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases' -> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases' -> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases' -> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyPhases' where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyPhases' -> Value
toJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"add_invoice_items" Text
-> Maybe
     [PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems']
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     [PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems']
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"application_fee_percent" Text -> Maybe Double -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases' -> Maybe Double
postSubscriptionSchedulesScheduleRequestBodyPhases'ApplicationFeePercent PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"automatic_tax" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
postSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"billing_cycle_anchor" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
postSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"billing_thresholds" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"collection_method" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
postSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"coupon" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases' -> Maybe Text
postSubscriptionSchedulesScheduleRequestBodyPhases'Coupon PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"default_payment_method" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases' -> Maybe Text
postSubscriptionSchedulesScheduleRequestBodyPhases'DefaultPaymentMethod PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"default_tax_rates" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"end_date" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'EndDate PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"invoice_settings" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
postSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"items" Text
-> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
postSubscriptionSchedulesScheduleRequestBodyPhases'Items PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"iterations" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases' -> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'Iterations PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"proration_behavior" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
postSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"start_date" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'StartDate PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"transfer_data" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
postSubscriptionSchedulesScheduleRequestBodyPhases'TransferData PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"trial" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases' -> Maybe Bool
postSubscriptionSchedulesScheduleRequestBodyPhases'Trial PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"trial_end" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesScheduleRequestBodyPhases' -> Encoding
toEncoding PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"add_invoice_items" Text
-> Maybe
     [PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems']
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     [PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems']
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"application_fee_percent" Text -> Maybe Double -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases' -> Maybe Double
postSubscriptionSchedulesScheduleRequestBodyPhases'ApplicationFeePercent PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"automatic_tax" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
postSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"billing_cycle_anchor" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
postSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"billing_thresholds" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"collection_method" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
postSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"coupon" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases' -> Maybe Text
postSubscriptionSchedulesScheduleRequestBodyPhases'Coupon PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"default_payment_method" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases' -> Maybe Text
postSubscriptionSchedulesScheduleRequestBodyPhases'DefaultPaymentMethod PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"default_tax_rates" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"end_date" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'EndDate PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"invoice_settings" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
postSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"items" Text
-> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
postSubscriptionSchedulesScheduleRequestBodyPhases'Items PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"iterations" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases' -> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'Iterations PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"proration_behavior" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
postSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"start_date" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'StartDate PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"transfer_data" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
postSubscriptionSchedulesScheduleRequestBodyPhases'TransferData PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"trial" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases' -> Maybe Bool
postSubscriptionSchedulesScheduleRequestBodyPhases'Trial PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"trial_end" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd PostSubscriptionSchedulesScheduleRequestBodyPhases'
obj))))))))))))))))))

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyPhases' where
  parseJSON :: Value -> Parser PostSubscriptionSchedulesScheduleRequestBodyPhases'
parseJSON = String
-> (Object
    -> Parser PostSubscriptionSchedulesScheduleRequestBodyPhases')
-> Value
-> Parser PostSubscriptionSchedulesScheduleRequestBodyPhases'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesScheduleRequestBodyPhases'" (\Object
obj -> ((((((((((((((((((Maybe
   [PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems']
 -> Maybe Double
 -> Maybe
      PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
 -> Maybe
      PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
 -> Maybe
      PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
 -> Maybe
      PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
 -> Maybe Text
 -> Maybe Text
 -> Maybe
      PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
 -> Maybe
      PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
 -> Maybe
      PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
 -> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
 -> Maybe Int
 -> Maybe
      PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
 -> Maybe
      PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
 -> Maybe
      PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
 -> Maybe Bool
 -> Maybe
      PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
-> Parser
     (Maybe
        [PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems']
      -> Maybe Double
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
      -> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
      -> Maybe Int
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
      -> Maybe Bool
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe
  [PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems']
-> Maybe Double
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
-> Maybe Text
-> Maybe Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
-> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
-> Maybe Int
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> Maybe Bool
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'
PostSubscriptionSchedulesScheduleRequestBodyPhases' Parser
  (Maybe
     [PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems']
   -> Maybe Double
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
   -> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
   -> Maybe Int
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
   -> Maybe Bool
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
-> Parser
     (Maybe
        [PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'])
-> Parser
     (Maybe Double
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
      -> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
      -> Maybe Int
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
      -> Maybe Bool
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        [PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"add_invoice_items")) Parser
  (Maybe Double
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
   -> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
   -> Maybe Int
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
   -> Maybe Bool
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
-> Parser (Maybe Double)
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
      -> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
      -> Maybe Int
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
      -> Maybe Bool
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Double)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"application_fee_percent")) Parser
  (Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
   -> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
   -> Maybe Int
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
   -> Maybe Bool
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
      -> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
      -> Maybe Int
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
      -> Maybe Bool
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"automatic_tax")) Parser
  (Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
   -> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
   -> Maybe Int
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
   -> Maybe Bool
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
      -> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
      -> Maybe Int
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
      -> Maybe Bool
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"billing_cycle_anchor")) Parser
  (Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
   -> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
   -> Maybe Int
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
   -> Maybe Bool
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants)
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
      -> Maybe Text
      -> Maybe Text
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
      -> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
      -> Maybe Int
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
      -> Maybe Bool
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"billing_thresholds")) Parser
  (Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
   -> Maybe Text
   -> Maybe Text
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
   -> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
   -> Maybe Int
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
   -> Maybe Bool
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod')
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
      -> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
      -> Maybe Int
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
      -> Maybe Bool
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"collection_method")) Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
   -> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
   -> Maybe Int
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
   -> Maybe Bool
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
      -> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
      -> Maybe Int
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
      -> Maybe Bool
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
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
"coupon")) Parser
  (Maybe Text
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
   -> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
   -> Maybe Int
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
   -> Maybe Bool
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
-> Parser (Maybe Text)
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
      -> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
      -> Maybe Int
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
      -> Maybe Bool
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
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
"default_payment_method")) Parser
  (Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
   -> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
   -> Maybe Int
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
   -> Maybe Bool
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants)
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
      -> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
      -> Maybe Int
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
      -> Maybe Bool
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"default_tax_rates")) Parser
  (Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
   -> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
   -> Maybe Int
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
   -> Maybe Bool
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants)
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
      -> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
      -> Maybe Int
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
      -> Maybe Bool
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"end_date")) Parser
  (Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
   -> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
   -> Maybe Int
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
   -> Maybe Bool
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings')
-> Parser
     ([PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
      -> Maybe Int
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
      -> Maybe Bool
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"invoice_settings")) Parser
  ([PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
   -> Maybe Int
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
   -> Maybe Bool
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
-> Parser
     [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
-> Parser
     (Maybe Int
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
      -> Maybe Bool
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"items")) Parser
  (Maybe Int
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
   -> Maybe Bool
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
-> Parser (Maybe Int)
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
      -> Maybe Bool
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
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
"iterations")) Parser
  (Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
   -> Maybe Bool
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
      -> Maybe Bool
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"proration_behavior")) Parser
  (Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
   -> Maybe Bool
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants)
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
      -> Maybe Bool
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"start_date")) Parser
  (Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
   -> Maybe Bool
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData')
-> Parser
     (Maybe Bool
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"transfer_data")) Parser
  (Maybe Bool
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
-> Parser (Maybe Bool)
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"trial")) Parser
  (Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants)
-> Parser PostSubscriptionSchedulesScheduleRequestBodyPhases'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"trial_end"))

-- | Create a new 'PostSubscriptionSchedulesScheduleRequestBodyPhases'' with all required fields.
mkPostSubscriptionSchedulesScheduleRequestBodyPhases' ::
  -- | 'postSubscriptionSchedulesScheduleRequestBodyPhases'Items'
  [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'] ->
  PostSubscriptionSchedulesScheduleRequestBodyPhases'
mkPostSubscriptionSchedulesScheduleRequestBodyPhases' :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'
mkPostSubscriptionSchedulesScheduleRequestBodyPhases' [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
postSubscriptionSchedulesScheduleRequestBodyPhases'Items =
  PostSubscriptionSchedulesScheduleRequestBodyPhases' :: Maybe
  [PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems']
-> Maybe Double
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
-> Maybe Text
-> Maybe Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
-> [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
-> Maybe Int
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> Maybe Bool
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'
PostSubscriptionSchedulesScheduleRequestBodyPhases'
    { postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems :: Maybe
  [PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems']
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems = Maybe
  [PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems']
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'ApplicationFeePercent :: Maybe Double
postSubscriptionSchedulesScheduleRequestBodyPhases'ApplicationFeePercent = Maybe Double
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax :: Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
postSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax = Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor :: Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
postSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor = Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds :: Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds = Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod :: Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
postSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod = Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'Coupon :: Maybe Text
postSubscriptionSchedulesScheduleRequestBodyPhases'Coupon = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'DefaultPaymentMethod :: Maybe Text
postSubscriptionSchedulesScheduleRequestBodyPhases'DefaultPaymentMethod = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates :: Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates = Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'EndDate :: Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'EndDate = Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings :: Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
postSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings = Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'Items :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
postSubscriptionSchedulesScheduleRequestBodyPhases'Items = [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
postSubscriptionSchedulesScheduleRequestBodyPhases'Items,
      postSubscriptionSchedulesScheduleRequestBodyPhases'Iterations :: Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'Iterations = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior :: Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
postSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior = Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'StartDate :: Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'StartDate = Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'TransferData :: Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
postSubscriptionSchedulesScheduleRequestBodyPhases'TransferData = Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'Trial :: Maybe Bool
postSubscriptionSchedulesScheduleRequestBodyPhases'Trial = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd :: Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd = Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.add_invoice_items.items@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems' = PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
  { -- | price
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> Maybe Text
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'Price :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | price_data
    PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'),
    -- | quantity
    PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'Quantity :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | tax_rates
    PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants)
  }
  deriving
    ( Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems']
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems']
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems']
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems']
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> String
-> String
GHC.Show.Show,
      PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
    -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems' where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> Value
toJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"price" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> Maybe Text
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'Price PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"price_data" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"quantity" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'Quantity PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tax_rates" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> Encoding
toEncoding PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"price" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> Maybe Text
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'Price PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"price_data" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"quantity" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'Quantity PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"tax_rates" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
obj))))

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
parseJSON = String
-> (Object
    -> Parser
         PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems')
-> Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'" (\Object
obj -> ((((Maybe Text
 -> Maybe
      PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
 -> Maybe Int
 -> Maybe
      PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems')
-> Parser
     (Maybe Text
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
      -> Maybe Int
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> Maybe Int
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems' Parser
  (Maybe Text
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
   -> Maybe Int
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems')
-> Parser (Maybe Text)
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
      -> Maybe Int
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems')
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
"price")) Parser
  (Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
   -> Maybe Int
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData')
-> Parser
     (Maybe Int
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"price_data")) Parser
  (Maybe Int
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems')
-> Parser (Maybe Int)
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems')
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
"quantity")) Parser
  (Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants)
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tax_rates"))

-- | Create a new 'PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'' with all required fields.
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems' :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems' :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems' =
  PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems' :: Maybe Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> Maybe Int
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'
    { postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'Price :: Maybe Text
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'Price = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData :: Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData = Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'Quantity :: Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'Quantity = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates :: Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates = Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.add_invoice_items.items.properties.price_data@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData' = PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
  { -- | currency
    PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> Text
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'Currency :: Data.Text.Internal.Text,
    -- | product
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> Text
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'Product :: Data.Text.Internal.Text,
    -- | tax_behavior
    PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'),
    -- | unit_amount
    PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'UnitAmount :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | unit_amount_decimal
    PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> Maybe Text
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'UnitAmountDecimal :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData']
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData']
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData']
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData']
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> String
-> String
GHC.Show.Show,
      PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
    -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData' where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> Value
toJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"currency" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> Text
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'Currency PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"product" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> Text
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'Product PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tax_behavior" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"unit_amount" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'UnitAmount PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"unit_amount_decimal" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> Maybe Text
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'UnitAmountDecimal PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> Encoding
toEncoding PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"currency" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> Text
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'Currency PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"product" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> Text
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'Product PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"tax_behavior" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"unit_amount" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'UnitAmount PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"unit_amount_decimal" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
-> Maybe Text
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'UnitAmountDecimal PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
obj)))))

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
parseJSON = String
-> (Object
    -> Parser
         PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData')
-> Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'" (\Object
obj -> (((((Text
 -> Text
 -> Maybe
      PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
 -> Maybe Int
 -> Maybe Text
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData')
-> Parser
     (Text
      -> Text
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Text
-> Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> Maybe Int
-> Maybe Text
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData' Parser
  (Text
   -> Text
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData')
-> Parser Text
-> Parser
     (Text
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData')
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
"currency")) Parser
  (Text
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData')
-> Parser Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData')
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
"product")) Parser
  (Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior')
-> Parser
     (Maybe Int
      -> Maybe Text
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tax_behavior")) Parser
  (Maybe Int
   -> Maybe Text
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData')
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData')
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
"unit_amount")) Parser
  (Maybe Text
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData')
-> Parser (Maybe Text)
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
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
"unit_amount_decimal"))

-- | Create a new 'PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'' with all required fields.
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData' ::
  -- | 'postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'Currency'
  Data.Text.Internal.Text ->
  -- | 'postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'Product'
  Data.Text.Internal.Text ->
  PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData' :: Text
-> Text
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData' Text
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'Currency Text
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'Product =
  PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData' :: Text
-> Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> Maybe Int
-> Maybe Text
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'
    { postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'Currency :: Text
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'Currency = Text
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'Currency,
      postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'Product :: Text
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'Product = Text
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'Product,
      postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior :: Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior = Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'UnitAmount :: Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'UnitAmount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'UnitAmountDecimal :: Maybe Text
postSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'UnitAmountDecimal = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the enum schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.add_invoice_items.items.properties.price_data.properties.tax_behavior@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"exclusive"@
    PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'EnumExclusive
  | -- | Represents the JSON value @"inclusive"@
    PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'EnumInclusive
  | -- | Represents the JSON value @"unspecified"@
    PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'EnumUnspecified
  deriving (Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior']
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior']
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior']
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior']
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> String
-> String
GHC.Show.Show, PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
    -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior' where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> Value
toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'Other Value
val) = Value
val
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'EnumExclusive) = Value
"exclusive"
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'EnumInclusive) = Value
"inclusive"
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'EnumUnspecified) = Value
"unspecified"

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
parseJSON Value
val =
    PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"exclusive" -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'EnumExclusive
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"inclusive" -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'EnumInclusive
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"unspecified" -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'EnumUnspecified
            | Bool
GHC.Base.otherwise -> Value
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'Other Value
val
      )

-- | Defines the oneOf schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.add_invoice_items.items.properties.tax_rates.anyOf@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
  = -- | Represents the JSON value @""@
    PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'EmptyString
  | PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'ListTText ([Data.Text.Internal.Text])
  deriving (Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants]
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants]
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants]
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants]
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> String
-> String
GHC.Show.Show, PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
    -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> Value
toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'ListTText [Text]
a) = [Text] -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON [Text]
a
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'EmptyString) = Value
""

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
parseJSON Value
val =
    if
        | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"" -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'EmptyString
        | Bool
GHC.Base.otherwise -> case ([Text]
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'ListTText ([Text]
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants)
-> Result [Text]
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result [Text]
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result
  PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched" of
          Data.Aeson.Types.Internal.Success PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
a -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
a
          Data.Aeson.Types.Internal.Error String
a -> String
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the object schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.automatic_tax@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax' = PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
  { -- | enabled
    PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
-> Bool
postSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'Enabled :: GHC.Types.Bool
  }
  deriving
    ( Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax']
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax']
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax']
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax']
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
-> String
-> String
GHC.Show.Show,
      PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
    -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax' where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
-> Value
toJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"enabled" Text -> Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
-> Bool
postSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'Enabled PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
-> Encoding
toEncoding PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"enabled" Text -> Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
-> Bool
postSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'Enabled PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
obj)

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
parseJSON = String
-> (Object
    -> Parser
         PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax')
-> Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'" (\Object
obj -> (Bool
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax')
-> Parser
     (Bool
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Bool
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax' Parser
  (Bool
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax')
-> Parser Bool
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
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
"enabled"))

-- | Create a new 'PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'' with all required fields.
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax' ::
  -- | 'postSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'Enabled'
  GHC.Types.Bool ->
  PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax' :: Bool
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax' Bool
postSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'Enabled = PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax' :: Bool
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'
PostSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax' {postSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'Enabled :: Bool
postSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'Enabled = Bool
postSubscriptionSchedulesScheduleRequestBodyPhases'AutomaticTax'Enabled}

-- | Defines the enum schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.billing_cycle_anchor@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"automatic"@
    PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'EnumAutomatic
  | -- | Represents the JSON value @"phase_start"@
    PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'EnumPhaseStart
  deriving (Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor']
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor']
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor']
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor']
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
-> String
-> String
GHC.Show.Show, PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
    -> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor' where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
-> Value
toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'Other Value
val) = Value
val
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'EnumAutomatic) = Value
"automatic"
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'EnumPhaseStart) = Value
"phase_start"

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
parseJSON Value
val =
    PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"automatic" -> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'EnumAutomatic
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"phase_start" -> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'EnumPhaseStart
            | Bool
GHC.Base.otherwise -> Value
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'
PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingCycleAnchor'Other Value
val
      )

-- | Defines the object schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.billing_thresholds.anyOf@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1 = PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
  { -- | amount_gte
    PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
-> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1AmountGte :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | reset_billing_cycle_anchor
    PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
-> Maybe Bool
postSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1ResetBillingCycleAnchor :: (GHC.Maybe.Maybe GHC.Types.Bool)
  }
  deriving
    ( Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1]
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1]
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1]
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1]
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
-> String
-> String
GHC.Show.Show,
      PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
    -> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1 where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
-> Value
toJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"amount_gte" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
-> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1AmountGte PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"reset_billing_cycle_anchor" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
-> Maybe Bool
postSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1ResetBillingCycleAnchor PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
-> Encoding
toEncoding PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"amount_gte" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
-> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1AmountGte PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"reset_billing_cycle_anchor" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
-> Maybe Bool
postSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1ResetBillingCycleAnchor PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
obj))

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1 where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
parseJSON = String
-> (Object
    -> Parser
         PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1)
-> Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1" (\Object
obj -> ((Maybe Int
 -> Maybe Bool
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1)
-> Parser
     (Maybe Int
      -> Maybe Bool
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Int
-> Maybe Bool
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1 Parser
  (Maybe Int
   -> Maybe Bool
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1)
-> Parser (Maybe Int)
-> Parser
     (Maybe Bool
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1)
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
"amount_gte")) Parser
  (Maybe Bool
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1)
-> Parser (Maybe Bool)
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"reset_billing_cycle_anchor"))

-- | Create a new 'PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1' with all required fields.
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1 :: PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1 :: PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1 =
  PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1 :: Maybe Int
-> Maybe Bool
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
    { postSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1AmountGte :: Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1AmountGte = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1ResetBillingCycleAnchor :: Maybe Bool
postSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1ResetBillingCycleAnchor = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the oneOf schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.billing_thresholds.anyOf@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
  = -- | Represents the JSON value @""@
    PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'EmptyString
  | PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1 PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
  deriving (Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants]
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants]
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants]
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants]
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
-> String
-> String
GHC.Show.Show, PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
    -> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
-> Value
toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1 PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
a) = PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
-> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
a
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'EmptyString) = Value
""

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
parseJSON Value
val =
    if
        | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"" -> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'EmptyString
        | Bool
GHC.Base.otherwise -> case (PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1 (PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants)
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'OneOf1
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result
  PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched" of
          Data.Aeson.Types.Internal.Success PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
a -> PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
a
          Data.Aeson.Types.Internal.Error String
a -> String
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'BillingThresholds'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the enum schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.collection_method@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"charge_automatically"@
    PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'EnumChargeAutomatically
  | -- | Represents the JSON value @"send_invoice"@
    PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'EnumSendInvoice
  deriving (Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod']
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod']
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod']
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod']
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
-> String
-> String
GHC.Show.Show, PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
    -> PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod' where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
-> Value
toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'Other Value
val) = Value
val
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'EnumChargeAutomatically) = Value
"charge_automatically"
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'EnumSendInvoice) = Value
"send_invoice"

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
parseJSON Value
val =
    PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"charge_automatically" -> PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'EnumChargeAutomatically
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"send_invoice" -> PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'EnumSendInvoice
            | Bool
GHC.Base.otherwise -> Value
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'
PostSubscriptionSchedulesScheduleRequestBodyPhases'CollectionMethod'Other Value
val
      )

-- | Defines the oneOf schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.default_tax_rates.anyOf@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
  = -- | Represents the JSON value @""@
    PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'EmptyString
  | PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'ListTText ([Data.Text.Internal.Text])
  deriving (Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants]
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants]
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants]
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants]
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
-> String
-> String
GHC.Show.Show, PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
    -> PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
-> Value
toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'ListTText [Text]
a) = [Text] -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON [Text]
a
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'EmptyString) = Value
""

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
parseJSON Value
val =
    if
        | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"" -> PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'EmptyString
        | Bool
GHC.Base.otherwise -> case ([Text]
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'ListTText ([Text]
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants)
-> Result [Text]
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result [Text]
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result
  PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched" of
          Data.Aeson.Types.Internal.Success PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
a -> PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
a
          Data.Aeson.Types.Internal.Error String
a -> String
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'DefaultTaxRates'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the oneOf schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.end_date.anyOf@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
  = -- | Represents the JSON value @"now"@
    PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Now
  | PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Int GHC.Types.Int
  deriving (Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants]
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants]
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants]
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants]
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
-> String
-> String
GHC.Show.Show, PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
    -> PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
-> Value
toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Int Int
a) = Int -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Int
a
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Now) = Value
"now"

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
parseJSON Value
val =
    if
        | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"now" -> PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Now
        | Bool
GHC.Base.otherwise -> case (Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Int (Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants)
-> Result Int
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Int
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result
  PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched" of
          Data.Aeson.Types.Internal.Success PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
a -> PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
a
          Data.Aeson.Types.Internal.Error String
a -> String
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'EndDate'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the object schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.invoice_settings@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings' = PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
  { -- | days_until_due
    PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
-> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'DaysUntilDue :: (GHC.Maybe.Maybe GHC.Types.Int)
  }
  deriving
    ( Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings']
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings']
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings']
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings']
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
-> String
-> String
GHC.Show.Show,
      PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
    -> PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings' where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
-> Value
toJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"days_until_due" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
-> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'DaysUntilDue PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
-> Encoding
toEncoding PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"days_until_due" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
-> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'DaysUntilDue PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
obj)

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
parseJSON = String
-> (Object
    -> Parser
         PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings')
-> Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'" (\Object
obj -> (Maybe Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings')
-> Parser
     (Maybe Int
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings' Parser
  (Maybe Int
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings')
-> Parser (Maybe Int)
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
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
"days_until_due"))

-- | Create a new 'PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'' with all required fields.
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings' :: PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings' :: PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings' = PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings' :: Maybe Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'
PostSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings' {postSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'DaysUntilDue :: Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'InvoiceSettings'DaysUntilDue = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing}

-- | Defines the object schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.items.items@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyPhases'Items' = PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
  { -- | billing_thresholds
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants),
    -- | price
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> Maybe Text
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'Price :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | price_data
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'),
    -- | quantity
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'Quantity :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | tax_rates
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants)
  }
  deriving
    ( Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items' -> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
    -> String -> String)
-> Show PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items']
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items' -> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items' -> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> String
-> String
GHC.Show.Show,
      PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
    -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
    -> Bool)
-> Eq PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'Items' where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items' -> Value
toJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"billing_thresholds" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"price" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> Maybe Text
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'Price PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"price_data" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"quantity" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'Quantity PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tax_rates" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> Encoding
toEncoding PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"billing_thresholds" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"price" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> Maybe Text
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'Price PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"price_data" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"quantity" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'Quantity PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"tax_rates" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
obj)))))

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'Items' where
  parseJSON :: Value
-> Parser PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
parseJSON = String
-> (Object
    -> Parser
         PostSubscriptionSchedulesScheduleRequestBodyPhases'Items')
-> Value
-> Parser PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'" (\Object
obj -> (((((Maybe
   PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
 -> Maybe Text
 -> Maybe
      PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
 -> Maybe Int
 -> Maybe
      PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
      -> Maybe Text
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
      -> Maybe Int
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
-> Maybe Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> Maybe Int
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items' Parser
  (Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
   -> Maybe Text
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
   -> Maybe Int
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants)
-> Parser
     (Maybe Text
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
      -> Maybe Int
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"billing_thresholds")) Parser
  (Maybe Text
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
   -> Maybe Int
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items')
-> Parser (Maybe Text)
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
      -> Maybe Int
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items')
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
"price")) Parser
  (Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
   -> Maybe Int
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData')
-> Parser
     (Maybe Int
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"price_data")) Parser
  (Maybe Int
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items')
-> Parser (Maybe Int)
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items')
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
"quantity")) Parser
  (Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants)
-> Parser PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tax_rates"))

-- | Create a new 'PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'' with all required fields.
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'Items' :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'Items' :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'Items' =
  PostSubscriptionSchedulesScheduleRequestBodyPhases'Items' :: Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
-> Maybe Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> Maybe Int
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'
    { postSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds :: Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds = Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'Items'Price :: Maybe Text
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'Price = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData :: Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData = Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'Items'Quantity :: Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'Quantity = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates :: Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates = Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.items.items.properties.billing_thresholds.anyOf@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1 = PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
  { -- | usage_gte
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
-> Int
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1UsageGte :: GHC.Types.Int
  }
  deriving
    ( Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1]
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1]
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1]
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1]
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
-> String
-> String
GHC.Show.Show,
      PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
    -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1 where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
-> Value
toJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"usage_gte" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
-> Int
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1UsageGte PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
-> Encoding
toEncoding PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs (Text
"usage_gte" Text -> Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
-> Int
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1UsageGte PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
obj)

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1 where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
parseJSON = String
-> (Object
    -> Parser
         PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1)
-> Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1" (\Object
obj -> (Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1)
-> Parser
     (Int
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1 Parser
  (Int
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1)
-> Parser Int
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser Int
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"usage_gte"))

-- | Create a new 'PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1' with all required fields.
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1 ::
  -- | 'postSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1UsageGte'
  GHC.Types.Int ->
  PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1 :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1 Int
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1UsageGte = PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1 :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1 {postSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1UsageGte :: Int
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1UsageGte = Int
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1UsageGte}

-- | Defines the oneOf schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.items.items.properties.billing_thresholds.anyOf@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
  = -- | Represents the JSON value @""@
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'EmptyString
  | PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1 PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
  deriving (Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants]
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants]
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants]
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants]
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
-> String
-> String
GHC.Show.Show, PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
    -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
-> Value
toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1 PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
a) = PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
-> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
a
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'EmptyString) = Value
""

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
parseJSON Value
val =
    if
        | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"" -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'EmptyString
        | Bool
GHC.Base.otherwise -> case (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1 (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants)
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'OneOf1
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result
  PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched" of
          Data.Aeson.Types.Internal.Success PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
a -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
a
          Data.Aeson.Types.Internal.Error String
a -> String
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'BillingThresholds'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the object schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.items.items.properties.price_data@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData' = PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
  { -- | currency
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> Text
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Currency :: Data.Text.Internal.Text,
    -- | product
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> Text
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Product :: Data.Text.Internal.Text,
    -- | recurring
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring',
    -- | tax_behavior
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior :: (GHC.Maybe.Maybe PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'),
    -- | unit_amount
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'UnitAmount :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | unit_amount_decimal
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> Maybe Text
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'UnitAmountDecimal :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData']
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData']
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData']
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData']
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> String
-> String
GHC.Show.Show,
      PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
    -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData' where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> Value
toJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"currency" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> Text
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Currency PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"product" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> Text
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Product PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"recurring" Text
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tax_behavior" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"unit_amount" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'UnitAmount PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"unit_amount_decimal" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> Maybe Text
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'UnitAmountDecimal PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> Encoding
toEncoding PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"currency" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> Text
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Currency PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"product" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> Text
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Product PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"recurring" Text
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"tax_behavior" Text
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"unit_amount" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'UnitAmount PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"unit_amount_decimal" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
-> Maybe Text
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'UnitAmountDecimal PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
obj))))))

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
parseJSON = String
-> (Object
    -> Parser
         PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData')
-> Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'" (\Object
obj -> ((((((Text
 -> Text
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
 -> Maybe
      PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
 -> Maybe Int
 -> Maybe Text
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData')
-> Parser
     (Text
      -> Text
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Text
-> Text
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
-> Maybe Int
-> Maybe Text
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData' Parser
  (Text
   -> Text
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData')
-> Parser Text
-> Parser
     (Text
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData')
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
"currency")) Parser
  (Text
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData')
-> Parser Text
-> Parser
     (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
      -> Maybe
           PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData')
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
"product")) Parser
  (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
   -> Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData')
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"recurring")) Parser
  (Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData')
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior')
-> Parser
     (Maybe Int
      -> Maybe Text
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tax_behavior")) Parser
  (Maybe Int
   -> Maybe Text
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData')
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData')
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
"unit_amount")) Parser
  (Maybe Text
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData')
-> Parser (Maybe Text)
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
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
"unit_amount_decimal"))

-- | Create a new 'PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'' with all required fields.
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData' ::
  -- | 'postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Currency'
  Data.Text.Internal.Text ->
  -- | 'postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Product'
  Data.Text.Internal.Text ->
  -- | 'postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
  PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring' ->
  PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData' :: Text
-> Text
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData' Text
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Currency Text
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Product PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring =
  PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData' :: Text
-> Text
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> Maybe
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
-> Maybe Int
-> Maybe Text
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'
    { postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Currency :: Text
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Currency = Text
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Currency,
      postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Product :: Text
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Product = Text
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Product,
      postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring = PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring,
      postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior :: Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior = Maybe
  PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'UnitAmount :: Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'UnitAmount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'UnitAmountDecimal :: Maybe Text
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'UnitAmountDecimal = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.items.items.properties.price_data.properties.recurring@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring' = PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
  { -- | interval
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval',
    -- | interval_count
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'IntervalCount :: (GHC.Maybe.Maybe GHC.Types.Int)
  }
  deriving
    ( Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring']
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring']
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring']
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring']
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> String
-> String
GHC.Show.Show,
      PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
    -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring' where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> Value
toJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"interval" Text
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"interval_count" Text -> Maybe Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'IntervalCount PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> Encoding
toEncoding PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"interval" Text
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"interval_count" Text -> Maybe Int -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
-> Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'IntervalCount PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
obj))

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
parseJSON = String
-> (Object
    -> Parser
         PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring')
-> Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'" (\Object
obj -> ((PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
 -> Maybe Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring')
-> Parser
     (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
      -> Maybe Int
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> Maybe Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring' Parser
  (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
   -> Maybe Int
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring')
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> Parser
     (Maybe Int
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"interval")) Parser
  (Maybe Int
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring')
-> Parser (Maybe Int)
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
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
"interval_count"))

-- | Create a new 'PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'' with all required fields.
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring' ::
  -- | 'postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
  PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval' ->
  PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring' :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring' PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval =
  PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring' :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> Maybe Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'
    { postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval = PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval,
      postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'IntervalCount :: Maybe Int
postSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'IntervalCount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the enum schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.items.items.properties.price_data.properties.recurring.properties.interval@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"day"@
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'EnumDay
  | -- | Represents the JSON value @"month"@
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'EnumMonth
  | -- | Represents the JSON value @"week"@
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'EnumWeek
  | -- | Represents the JSON value @"year"@
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'EnumYear
  deriving (Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval']
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval']
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval']
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval']
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> String
-> String
GHC.Show.Show, PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
    -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval' where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> Value
toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'Other Value
val) = Value
val
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'EnumDay) = Value
"day"
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'EnumMonth) = Value
"month"
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'EnumWeek) = Value
"week"
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'EnumYear) = Value
"year"

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
parseJSON Value
val =
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"day" -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'EnumDay
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"month" -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'EnumMonth
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"week" -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'EnumWeek
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"year" -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'EnumYear
            | Bool
GHC.Base.otherwise -> Value
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'Recurring'Interval'Other Value
val
      )

-- | Defines the enum schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.items.items.properties.price_data.properties.tax_behavior@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"exclusive"@
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'EnumExclusive
  | -- | Represents the JSON value @"inclusive"@
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'EnumInclusive
  | -- | Represents the JSON value @"unspecified"@
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'EnumUnspecified
  deriving (Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior']
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior']
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior']
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior']
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
-> String
-> String
GHC.Show.Show, PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
    -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior' where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
-> Value
toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'Other Value
val) = Value
val
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'EnumExclusive) = Value
"exclusive"
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'EnumInclusive) = Value
"inclusive"
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'EnumUnspecified) = Value
"unspecified"

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
parseJSON Value
val =
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"exclusive" -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'EnumExclusive
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"inclusive" -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'EnumInclusive
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"unspecified" -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'EnumUnspecified
            | Bool
GHC.Base.otherwise -> Value
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'PriceData'TaxBehavior'Other Value
val
      )

-- | Defines the oneOf schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.items.items.properties.tax_rates.anyOf@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
  = -- | Represents the JSON value @""@
    PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'EmptyString
  | PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'ListTText ([Data.Text.Internal.Text])
  deriving (Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants]
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants]
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants]
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants]
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
-> String
-> String
GHC.Show.Show, PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
    -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
-> Value
toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'ListTText [Text]
a) = [Text] -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON [Text]
a
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'EmptyString) = Value
""

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
parseJSON Value
val =
    if
        | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"" -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'EmptyString
        | Bool
GHC.Base.otherwise -> case ([Text]
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'ListTText ([Text]
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants)
-> Result [Text]
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result [Text]
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result
  PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched" of
          Data.Aeson.Types.Internal.Success PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
a -> PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
a
          Data.Aeson.Types.Internal.Error String
a -> String
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'Items'TaxRates'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the enum schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.proration_behavior@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"always_invoice"@
    PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'EnumAlwaysInvoice
  | -- | Represents the JSON value @"create_prorations"@
    PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'EnumCreateProrations
  | -- | Represents the JSON value @"none"@
    PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'EnumNone
  deriving (Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior']
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior']
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior']
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior']
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
-> String
-> String
GHC.Show.Show, PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
    -> PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior' where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
-> Value
toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'Other Value
val) = Value
val
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'EnumAlwaysInvoice) = Value
"always_invoice"
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'EnumCreateProrations) = Value
"create_prorations"
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'EnumNone) = Value
"none"

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
parseJSON Value
val =
    PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"always_invoice" -> PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'EnumAlwaysInvoice
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"create_prorations" -> PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'EnumCreateProrations
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"none" -> PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'EnumNone
            | Bool
GHC.Base.otherwise -> Value
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'
PostSubscriptionSchedulesScheduleRequestBodyPhases'ProrationBehavior'Other Value
val
      )

-- | Defines the oneOf schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.start_date.anyOf@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
  = -- | Represents the JSON value @"now"@
    PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Now
  | PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Int GHC.Types.Int
  deriving (Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants]
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants]
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants]
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants]
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
-> String
-> String
GHC.Show.Show, PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
    -> PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
-> Value
toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Int Int
a) = Int -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Int
a
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Now) = Value
"now"

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
parseJSON Value
val =
    if
        | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"now" -> PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Now
        | Bool
GHC.Base.otherwise -> case (Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Int (Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants)
-> Result Int
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Int
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result
  PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched" of
          Data.Aeson.Types.Internal.Success PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
a -> PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
a
          Data.Aeson.Types.Internal.Error String
a -> String
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'StartDate'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the object schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.transfer_data@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData' = PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
  { -- | amount_percent
    PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> Maybe Double
postSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'AmountPercent :: (GHC.Maybe.Maybe GHC.Types.Double),
    -- | destination
    PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> Text
postSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'Destination :: Data.Text.Internal.Text
  }
  deriving
    ( Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData']
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData']
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData']
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData']
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> String
-> String
GHC.Show.Show,
      PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
    -> PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData' where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> Value
toJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"amount_percent" Text -> Maybe Double -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> Maybe Double
postSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'AmountPercent PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"destination" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> Text
postSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'Destination PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> Encoding
toEncoding PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"amount_percent" Text -> Maybe Double -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> Maybe Double
postSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'AmountPercent PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"destination" Text -> Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
-> Text
postSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'Destination PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
obj))

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
parseJSON = String
-> (Object
    -> Parser
         PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData')
-> Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'" (\Object
obj -> ((Maybe Double
 -> Text
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData')
-> Parser
     (Maybe Double
      -> Text
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Double
-> Text
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData' Parser
  (Maybe Double
   -> Text
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData')
-> Parser (Maybe Double)
-> Parser
     (Text
      -> PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object -> Text -> Parser (Maybe Double)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"amount_percent")) Parser
  (Text
   -> PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData')
-> Parser Text
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
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
"destination"))

-- | Create a new 'PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'' with all required fields.
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData' ::
  -- | 'postSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'Destination'
  Data.Text.Internal.Text ->
  PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData' :: Text
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
mkPostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData' Text
postSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'Destination =
  PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData' :: Maybe Double
-> Text
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
PostSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'
    { postSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'AmountPercent :: Maybe Double
postSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'AmountPercent = Maybe Double
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'Destination :: Text
postSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'Destination = Text
postSubscriptionSchedulesScheduleRequestBodyPhases'TransferData'Destination
    }

-- | Defines the oneOf schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.trial_end.anyOf@ in the specification.
data PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
  = -- | Represents the JSON value @"now"@
    PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Now
  | PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Int GHC.Types.Int
  deriving (Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants]
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants]
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants]
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants]
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
-> String
-> String
GHC.Show.Show, PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
    -> PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
-> Value
toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Int Int
a) = Int -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Int
a
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Now) = Value
"now"

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
parseJSON Value
val =
    if
        | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"now" -> PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Now
        | Bool
GHC.Base.otherwise -> case (Int
-> PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Int (Int
 -> PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants)
-> Result Int
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value -> Result Int
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result
  PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched" of
          Data.Aeson.Types.Internal.Success PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
a -> PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
a
          Data.Aeson.Types.Internal.Error String
a -> String
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyPhases'TrialEnd'Variants
forall (m :: * -> *) a. MonadFail m => String -> m a
Control.Monad.Fail.fail String
a

-- | Defines the enum schema located at @paths.\/v1\/subscription_schedules\/{schedule}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.proration_behavior@ in the specification.
--
-- If the update changes the current phase, indicates if the changes should be prorated. Possible values are \`create_prorations\` or \`none\`, and the default value is \`create_prorations\`.
data PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"always_invoice"@
    PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'EnumAlwaysInvoice
  | -- | Represents the JSON value @"create_prorations"@
    PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'EnumCreateProrations
  | -- | Represents the JSON value @"none"@
    PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'EnumNone
  deriving (Int
-> PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
-> String
-> String
[PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior']
-> String -> String
PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
-> String
(Int
 -> PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
 -> String
 -> String)
-> (PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
    -> String)
-> ([PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior']
    -> String -> String)
-> Show
     PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior']
-> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior']
-> String -> String
show :: PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
-> String
$cshow :: PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
-> String
-> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
-> String
-> String
GHC.Show.Show, PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
-> PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
-> Bool
(PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
 -> PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
 -> Bool)
-> (PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
    -> PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
    -> Bool)
-> Eq
     PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
-> PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
-> Bool
$c/= :: PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
-> PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
-> Bool
== :: PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
-> PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
-> Bool
$c== :: PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
-> PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior' where
  toJSON :: PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
-> Value
toJSON (PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'Other Value
val) = Value
val
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'EnumAlwaysInvoice) = Value
"always_invoice"
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'EnumCreateProrations) = Value
"create_prorations"
  toJSON (PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'EnumNone) = Value
"none"

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
parseJSON Value
val =
    PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
-> Parser
     PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure
      ( if
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"always_invoice" -> PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'EnumAlwaysInvoice
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"create_prorations" -> PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'EnumCreateProrations
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"none" -> PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'EnumNone
            | Bool
GHC.Base.otherwise -> Value
-> PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'
PostSubscriptionSchedulesScheduleRequestBodyProrationBehavior'Other Value
val
      )

-- | Represents a response of the operation 'postSubscriptionSchedulesSchedule'.
--
-- 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), 'PostSubscriptionSchedulesScheduleResponseError' is used.
data PostSubscriptionSchedulesScheduleResponse
  = -- | Means either no matching case available or a parse error
    PostSubscriptionSchedulesScheduleResponseError GHC.Base.String
  | -- | Successful response.
    PostSubscriptionSchedulesScheduleResponse200 SubscriptionSchedule
  | -- | Error response.
    PostSubscriptionSchedulesScheduleResponseDefault Error
  deriving (Int
-> PostSubscriptionSchedulesScheduleResponse -> String -> String
[PostSubscriptionSchedulesScheduleResponse] -> String -> String
PostSubscriptionSchedulesScheduleResponse -> String
(Int
 -> PostSubscriptionSchedulesScheduleResponse -> String -> String)
-> (PostSubscriptionSchedulesScheduleResponse -> String)
-> ([PostSubscriptionSchedulesScheduleResponse]
    -> String -> String)
-> Show PostSubscriptionSchedulesScheduleResponse
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostSubscriptionSchedulesScheduleResponse] -> String -> String
$cshowList :: [PostSubscriptionSchedulesScheduleResponse] -> String -> String
show :: PostSubscriptionSchedulesScheduleResponse -> String
$cshow :: PostSubscriptionSchedulesScheduleResponse -> String
showsPrec :: Int
-> PostSubscriptionSchedulesScheduleResponse -> String -> String
$cshowsPrec :: Int
-> PostSubscriptionSchedulesScheduleResponse -> String -> String
GHC.Show.Show, PostSubscriptionSchedulesScheduleResponse
-> PostSubscriptionSchedulesScheduleResponse -> Bool
(PostSubscriptionSchedulesScheduleResponse
 -> PostSubscriptionSchedulesScheduleResponse -> Bool)
-> (PostSubscriptionSchedulesScheduleResponse
    -> PostSubscriptionSchedulesScheduleResponse -> Bool)
-> Eq PostSubscriptionSchedulesScheduleResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesScheduleResponse
-> PostSubscriptionSchedulesScheduleResponse -> Bool
$c/= :: PostSubscriptionSchedulesScheduleResponse
-> PostSubscriptionSchedulesScheduleResponse -> Bool
== :: PostSubscriptionSchedulesScheduleResponse
-> PostSubscriptionSchedulesScheduleResponse -> Bool
$c== :: PostSubscriptionSchedulesScheduleResponse
-> PostSubscriptionSchedulesScheduleResponse -> Bool
GHC.Classes.Eq)