{-# 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 postSubscriptionSchedules
module StripeAPI.Operations.PostSubscriptionSchedules 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
--
-- \<p>Creates a new subscription schedule object. Each customer can have up to 500 active or scheduled subscriptions.\<\/p>
postSubscriptionSchedules ::
  forall m.
  StripeAPI.Common.MonadHTTP m =>
  -- | The request body to send
  GHC.Maybe.Maybe PostSubscriptionSchedulesRequestBody ->
  -- | Monadic computation which returns the result of the operation
  StripeAPI.Common.StripeT m (Network.HTTP.Client.Types.Response PostSubscriptionSchedulesResponse)
postSubscriptionSchedules :: Maybe PostSubscriptionSchedulesRequestBody
-> StripeT m (Response PostSubscriptionSchedulesResponse)
postSubscriptionSchedules Maybe PostSubscriptionSchedulesRequestBody
body =
  (Response ByteString -> Response PostSubscriptionSchedulesResponse)
-> StripeT m (Response ByteString)
-> StripeT m (Response PostSubscriptionSchedulesResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
    ( \Response ByteString
response_0 ->
        (ByteString -> PostSubscriptionSchedulesResponse)
-> Response ByteString
-> Response PostSubscriptionSchedulesResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
          ( (String -> PostSubscriptionSchedulesResponse)
-> (PostSubscriptionSchedulesResponse
    -> PostSubscriptionSchedulesResponse)
-> Either String PostSubscriptionSchedulesResponse
-> PostSubscriptionSchedulesResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
Data.Either.either String -> PostSubscriptionSchedulesResponse
PostSubscriptionSchedulesResponseError PostSubscriptionSchedulesResponse
-> PostSubscriptionSchedulesResponse
forall a. a -> a
GHC.Base.id
              (Either String PostSubscriptionSchedulesResponse
 -> PostSubscriptionSchedulesResponse)
-> (ByteString -> Either String PostSubscriptionSchedulesResponse)
-> ByteString
-> PostSubscriptionSchedulesResponse
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 -> PostSubscriptionSchedulesResponse
PostSubscriptionSchedulesResponse200
                                     (SubscriptionSchedule -> PostSubscriptionSchedulesResponse)
-> Either String SubscriptionSchedule
-> Either String PostSubscriptionSchedulesResponse
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 -> PostSubscriptionSchedulesResponse
PostSubscriptionSchedulesResponseDefault
                                     (Error -> PostSubscriptionSchedulesResponse)
-> Either String Error
-> Either String PostSubscriptionSchedulesResponse
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 PostSubscriptionSchedulesResponse
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 PostSubscriptionSchedulesRequestBody
-> RequestBodyEncoding
-> StripeT m (Response ByteString)
forall (m :: * -> *) body.
(MonadHTTP m, ToJSON body) =>
Text
-> Text
-> [QueryParameter]
-> Maybe body
-> RequestBodyEncoding
-> StripeT 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") [QueryParameter]
forall a. Monoid a => a
GHC.Base.mempty Maybe PostSubscriptionSchedulesRequestBody
body RequestBodyEncoding
StripeAPI.Common.RequestBodyEncodingFormData)

-- | Defines the object schema located at @paths.\/v1\/subscription_schedules.POST.requestBody.content.application\/x-www-form-urlencoded.schema@ in the specification.
data PostSubscriptionSchedulesRequestBody = PostSubscriptionSchedulesRequestBody
  { -- | customer: The identifier of the customer to create the subscription schedule for.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSubscriptionSchedulesRequestBody -> Maybe Text
postSubscriptionSchedulesRequestBodyCustomer :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | default_settings: Object representing the subscription schedule\'s default settings.
    PostSubscriptionSchedulesRequestBody
-> Maybe PostSubscriptionSchedulesRequestBodyDefaultSettings'
postSubscriptionSchedulesRequestBodyDefaultSettings :: (GHC.Maybe.Maybe PostSubscriptionSchedulesRequestBodyDefaultSettings'),
    -- | 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.
    PostSubscriptionSchedulesRequestBody
-> Maybe PostSubscriptionSchedulesRequestBodyEndBehavior'
postSubscriptionSchedulesRequestBodyEndBehavior :: (GHC.Maybe.Maybe PostSubscriptionSchedulesRequestBodyEndBehavior'),
    -- | expand: Specifies which fields in the response should be expanded.
    PostSubscriptionSchedulesRequestBody -> Maybe [Text]
postSubscriptionSchedulesRequestBodyExpand :: (GHC.Maybe.Maybe ([Data.Text.Internal.Text])),
    -- | from_subscription: Migrate an existing subscription to be managed by a subscription schedule. If this parameter is set, a subscription schedule will be created using the subscription\'s item(s), set to auto-renew using the subscription\'s interval. When using this parameter, other parameters (such as phase values) cannot be set. To create a subscription schedule with other modifications, we recommend making two separate API calls.
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSubscriptionSchedulesRequestBody -> Maybe Text
postSubscriptionSchedulesRequestBodyFromSubscription :: (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\`.
    PostSubscriptionSchedulesRequestBody
-> Maybe PostSubscriptionSchedulesRequestBodyMetadata'Variants
postSubscriptionSchedulesRequestBodyMetadata :: (GHC.Maybe.Maybe PostSubscriptionSchedulesRequestBodyMetadata'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.
    PostSubscriptionSchedulesRequestBody
-> Maybe [PostSubscriptionSchedulesRequestBodyPhases']
postSubscriptionSchedulesRequestBodyPhases :: (GHC.Maybe.Maybe ([PostSubscriptionSchedulesRequestBodyPhases'])),
    -- | start_date: When the subscription schedule starts. We recommend using \`now\` so that it starts the subscription immediately. You can also use a Unix timestamp to backdate the subscription so that it starts on a past date, or set a future date for the subscription to start on.
    PostSubscriptionSchedulesRequestBody
-> Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants
postSubscriptionSchedulesRequestBodyStartDate :: (GHC.Maybe.Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants)
  }
  deriving
    ( Int -> PostSubscriptionSchedulesRequestBody -> ShowS
[PostSubscriptionSchedulesRequestBody] -> ShowS
PostSubscriptionSchedulesRequestBody -> String
(Int -> PostSubscriptionSchedulesRequestBody -> ShowS)
-> (PostSubscriptionSchedulesRequestBody -> String)
-> ([PostSubscriptionSchedulesRequestBody] -> ShowS)
-> Show PostSubscriptionSchedulesRequestBody
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSubscriptionSchedulesRequestBody] -> ShowS
$cshowList :: [PostSubscriptionSchedulesRequestBody] -> ShowS
show :: PostSubscriptionSchedulesRequestBody -> String
$cshow :: PostSubscriptionSchedulesRequestBody -> String
showsPrec :: Int -> PostSubscriptionSchedulesRequestBody -> ShowS
$cshowsPrec :: Int -> PostSubscriptionSchedulesRequestBody -> ShowS
GHC.Show.Show,
      PostSubscriptionSchedulesRequestBody
-> PostSubscriptionSchedulesRequestBody -> Bool
(PostSubscriptionSchedulesRequestBody
 -> PostSubscriptionSchedulesRequestBody -> Bool)
-> (PostSubscriptionSchedulesRequestBody
    -> PostSubscriptionSchedulesRequestBody -> Bool)
-> Eq PostSubscriptionSchedulesRequestBody
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesRequestBody
-> PostSubscriptionSchedulesRequestBody -> Bool
$c/= :: PostSubscriptionSchedulesRequestBody
-> PostSubscriptionSchedulesRequestBody -> Bool
== :: PostSubscriptionSchedulesRequestBody
-> PostSubscriptionSchedulesRequestBody -> Bool
$c== :: PostSubscriptionSchedulesRequestBody
-> PostSubscriptionSchedulesRequestBody -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesRequestBody where
  toJSON :: PostSubscriptionSchedulesRequestBody -> Value
toJSON PostSubscriptionSchedulesRequestBody
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"customer" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBody -> Maybe Text
postSubscriptionSchedulesRequestBodyCustomer PostSubscriptionSchedulesRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"default_settings" Text
-> Maybe PostSubscriptionSchedulesRequestBodyDefaultSettings'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBody
-> Maybe PostSubscriptionSchedulesRequestBodyDefaultSettings'
postSubscriptionSchedulesRequestBodyDefaultSettings PostSubscriptionSchedulesRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"end_behavior" Text
-> Maybe PostSubscriptionSchedulesRequestBodyEndBehavior' -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBody
-> Maybe PostSubscriptionSchedulesRequestBodyEndBehavior'
postSubscriptionSchedulesRequestBodyEndBehavior PostSubscriptionSchedulesRequestBody
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..= PostSubscriptionSchedulesRequestBody -> Maybe [Text]
postSubscriptionSchedulesRequestBodyExpand PostSubscriptionSchedulesRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"from_subscription" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBody -> Maybe Text
postSubscriptionSchedulesRequestBodyFromSubscription PostSubscriptionSchedulesRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"metadata" Text
-> Maybe PostSubscriptionSchedulesRequestBodyMetadata'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBody
-> Maybe PostSubscriptionSchedulesRequestBodyMetadata'Variants
postSubscriptionSchedulesRequestBodyMetadata PostSubscriptionSchedulesRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"phases" Text -> Maybe [PostSubscriptionSchedulesRequestBodyPhases'] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBody
-> Maybe [PostSubscriptionSchedulesRequestBodyPhases']
postSubscriptionSchedulesRequestBodyPhases PostSubscriptionSchedulesRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"start_date" Text
-> Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBody
-> Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants
postSubscriptionSchedulesRequestBodyStartDate PostSubscriptionSchedulesRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesRequestBody -> Encoding
toEncoding PostSubscriptionSchedulesRequestBody
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"customer" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBody -> Maybe Text
postSubscriptionSchedulesRequestBodyCustomer PostSubscriptionSchedulesRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"default_settings" Text
-> Maybe PostSubscriptionSchedulesRequestBodyDefaultSettings'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBody
-> Maybe PostSubscriptionSchedulesRequestBodyDefaultSettings'
postSubscriptionSchedulesRequestBodyDefaultSettings PostSubscriptionSchedulesRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"end_behavior" Text
-> Maybe PostSubscriptionSchedulesRequestBodyEndBehavior' -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBody
-> Maybe PostSubscriptionSchedulesRequestBodyEndBehavior'
postSubscriptionSchedulesRequestBodyEndBehavior PostSubscriptionSchedulesRequestBody
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..= PostSubscriptionSchedulesRequestBody -> Maybe [Text]
postSubscriptionSchedulesRequestBodyExpand PostSubscriptionSchedulesRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"from_subscription" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBody -> Maybe Text
postSubscriptionSchedulesRequestBodyFromSubscription PostSubscriptionSchedulesRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"metadata" Text
-> Maybe PostSubscriptionSchedulesRequestBodyMetadata'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBody
-> Maybe PostSubscriptionSchedulesRequestBodyMetadata'Variants
postSubscriptionSchedulesRequestBodyMetadata PostSubscriptionSchedulesRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"phases" Text
-> Maybe [PostSubscriptionSchedulesRequestBodyPhases'] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBody
-> Maybe [PostSubscriptionSchedulesRequestBodyPhases']
postSubscriptionSchedulesRequestBodyPhases PostSubscriptionSchedulesRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"start_date" Text
-> Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBody
-> Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants
postSubscriptionSchedulesRequestBodyStartDate PostSubscriptionSchedulesRequestBody
obj))))))))

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBody where
  parseJSON :: Value -> Parser PostSubscriptionSchedulesRequestBody
parseJSON = String
-> (Object -> Parser PostSubscriptionSchedulesRequestBody)
-> Value
-> Parser PostSubscriptionSchedulesRequestBody
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesRequestBody" (\Object
obj -> ((((((((Maybe Text
 -> Maybe PostSubscriptionSchedulesRequestBodyDefaultSettings'
 -> Maybe PostSubscriptionSchedulesRequestBodyEndBehavior'
 -> Maybe [Text]
 -> Maybe Text
 -> Maybe PostSubscriptionSchedulesRequestBodyMetadata'Variants
 -> Maybe [PostSubscriptionSchedulesRequestBodyPhases']
 -> Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants
 -> PostSubscriptionSchedulesRequestBody)
-> Parser
     (Maybe Text
      -> Maybe PostSubscriptionSchedulesRequestBodyDefaultSettings'
      -> Maybe PostSubscriptionSchedulesRequestBodyEndBehavior'
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe PostSubscriptionSchedulesRequestBodyMetadata'Variants
      -> Maybe [PostSubscriptionSchedulesRequestBodyPhases']
      -> Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants
      -> PostSubscriptionSchedulesRequestBody)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Text
-> Maybe PostSubscriptionSchedulesRequestBodyDefaultSettings'
-> Maybe PostSubscriptionSchedulesRequestBodyEndBehavior'
-> Maybe [Text]
-> Maybe Text
-> Maybe PostSubscriptionSchedulesRequestBodyMetadata'Variants
-> Maybe [PostSubscriptionSchedulesRequestBodyPhases']
-> Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants
-> PostSubscriptionSchedulesRequestBody
PostSubscriptionSchedulesRequestBody Parser
  (Maybe Text
   -> Maybe PostSubscriptionSchedulesRequestBodyDefaultSettings'
   -> Maybe PostSubscriptionSchedulesRequestBodyEndBehavior'
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe PostSubscriptionSchedulesRequestBodyMetadata'Variants
   -> Maybe [PostSubscriptionSchedulesRequestBodyPhases']
   -> Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants
   -> PostSubscriptionSchedulesRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe PostSubscriptionSchedulesRequestBodyDefaultSettings'
      -> Maybe PostSubscriptionSchedulesRequestBodyEndBehavior'
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe PostSubscriptionSchedulesRequestBodyMetadata'Variants
      -> Maybe [PostSubscriptionSchedulesRequestBodyPhases']
      -> Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants
      -> PostSubscriptionSchedulesRequestBody)
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
"customer")) Parser
  (Maybe PostSubscriptionSchedulesRequestBodyDefaultSettings'
   -> Maybe PostSubscriptionSchedulesRequestBodyEndBehavior'
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe PostSubscriptionSchedulesRequestBodyMetadata'Variants
   -> Maybe [PostSubscriptionSchedulesRequestBodyPhases']
   -> Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants
   -> PostSubscriptionSchedulesRequestBody)
-> Parser
     (Maybe PostSubscriptionSchedulesRequestBodyDefaultSettings')
-> Parser
     (Maybe PostSubscriptionSchedulesRequestBodyEndBehavior'
      -> Maybe [Text]
      -> Maybe Text
      -> Maybe PostSubscriptionSchedulesRequestBodyMetadata'Variants
      -> Maybe [PostSubscriptionSchedulesRequestBodyPhases']
      -> Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants
      -> PostSubscriptionSchedulesRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe PostSubscriptionSchedulesRequestBodyDefaultSettings')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"default_settings")) Parser
  (Maybe PostSubscriptionSchedulesRequestBodyEndBehavior'
   -> Maybe [Text]
   -> Maybe Text
   -> Maybe PostSubscriptionSchedulesRequestBodyMetadata'Variants
   -> Maybe [PostSubscriptionSchedulesRequestBodyPhases']
   -> Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants
   -> PostSubscriptionSchedulesRequestBody)
-> Parser (Maybe PostSubscriptionSchedulesRequestBodyEndBehavior')
-> Parser
     (Maybe [Text]
      -> Maybe Text
      -> Maybe PostSubscriptionSchedulesRequestBodyMetadata'Variants
      -> Maybe [PostSubscriptionSchedulesRequestBodyPhases']
      -> Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants
      -> PostSubscriptionSchedulesRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe PostSubscriptionSchedulesRequestBodyEndBehavior')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"end_behavior")) Parser
  (Maybe [Text]
   -> Maybe Text
   -> Maybe PostSubscriptionSchedulesRequestBodyMetadata'Variants
   -> Maybe [PostSubscriptionSchedulesRequestBodyPhases']
   -> Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants
   -> PostSubscriptionSchedulesRequestBody)
-> Parser (Maybe [Text])
-> Parser
     (Maybe Text
      -> Maybe PostSubscriptionSchedulesRequestBodyMetadata'Variants
      -> Maybe [PostSubscriptionSchedulesRequestBodyPhases']
      -> Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants
      -> PostSubscriptionSchedulesRequestBody)
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 Text
   -> Maybe PostSubscriptionSchedulesRequestBodyMetadata'Variants
   -> Maybe [PostSubscriptionSchedulesRequestBodyPhases']
   -> Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants
   -> PostSubscriptionSchedulesRequestBody)
-> Parser (Maybe Text)
-> Parser
     (Maybe PostSubscriptionSchedulesRequestBodyMetadata'Variants
      -> Maybe [PostSubscriptionSchedulesRequestBodyPhases']
      -> Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants
      -> PostSubscriptionSchedulesRequestBody)
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
"from_subscription")) Parser
  (Maybe PostSubscriptionSchedulesRequestBodyMetadata'Variants
   -> Maybe [PostSubscriptionSchedulesRequestBodyPhases']
   -> Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants
   -> PostSubscriptionSchedulesRequestBody)
-> Parser
     (Maybe PostSubscriptionSchedulesRequestBodyMetadata'Variants)
-> Parser
     (Maybe [PostSubscriptionSchedulesRequestBodyPhases']
      -> Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants
      -> PostSubscriptionSchedulesRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe PostSubscriptionSchedulesRequestBodyMetadata'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"metadata")) Parser
  (Maybe [PostSubscriptionSchedulesRequestBodyPhases']
   -> Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants
   -> PostSubscriptionSchedulesRequestBody)
-> Parser (Maybe [PostSubscriptionSchedulesRequestBodyPhases'])
-> Parser
     (Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants
      -> PostSubscriptionSchedulesRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser (Maybe [PostSubscriptionSchedulesRequestBodyPhases'])
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"phases")) Parser
  (Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants
   -> PostSubscriptionSchedulesRequestBody)
-> Parser
     (Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants)
-> Parser PostSubscriptionSchedulesRequestBody
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"start_date"))

-- | Create a new 'PostSubscriptionSchedulesRequestBody' with all required fields.
mkPostSubscriptionSchedulesRequestBody :: PostSubscriptionSchedulesRequestBody
mkPostSubscriptionSchedulesRequestBody :: PostSubscriptionSchedulesRequestBody
mkPostSubscriptionSchedulesRequestBody =
  PostSubscriptionSchedulesRequestBody :: Maybe Text
-> Maybe PostSubscriptionSchedulesRequestBodyDefaultSettings'
-> Maybe PostSubscriptionSchedulesRequestBodyEndBehavior'
-> Maybe [Text]
-> Maybe Text
-> Maybe PostSubscriptionSchedulesRequestBodyMetadata'Variants
-> Maybe [PostSubscriptionSchedulesRequestBodyPhases']
-> Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants
-> PostSubscriptionSchedulesRequestBody
PostSubscriptionSchedulesRequestBody
    { postSubscriptionSchedulesRequestBodyCustomer :: Maybe Text
postSubscriptionSchedulesRequestBodyCustomer = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesRequestBodyDefaultSettings :: Maybe PostSubscriptionSchedulesRequestBodyDefaultSettings'
postSubscriptionSchedulesRequestBodyDefaultSettings = Maybe PostSubscriptionSchedulesRequestBodyDefaultSettings'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesRequestBodyEndBehavior :: Maybe PostSubscriptionSchedulesRequestBodyEndBehavior'
postSubscriptionSchedulesRequestBodyEndBehavior = Maybe PostSubscriptionSchedulesRequestBodyEndBehavior'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesRequestBodyExpand :: Maybe [Text]
postSubscriptionSchedulesRequestBodyExpand = Maybe [Text]
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesRequestBodyFromSubscription :: Maybe Text
postSubscriptionSchedulesRequestBodyFromSubscription = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesRequestBodyMetadata :: Maybe PostSubscriptionSchedulesRequestBodyMetadata'Variants
postSubscriptionSchedulesRequestBodyMetadata = Maybe PostSubscriptionSchedulesRequestBodyMetadata'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesRequestBodyPhases :: Maybe [PostSubscriptionSchedulesRequestBodyPhases']
postSubscriptionSchedulesRequestBodyPhases = Maybe [PostSubscriptionSchedulesRequestBodyPhases']
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesRequestBodyStartDate :: Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants
postSubscriptionSchedulesRequestBodyStartDate = Maybe PostSubscriptionSchedulesRequestBodyStartDate'Variants
forall a. Maybe a
GHC.Maybe.Nothing
    }

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

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesRequestBodyDefaultSettings' where
  toJSON :: PostSubscriptionSchedulesRequestBodyDefaultSettings' -> Value
toJSON PostSubscriptionSchedulesRequestBodyDefaultSettings'
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..= PostSubscriptionSchedulesRequestBodyDefaultSettings'
-> Maybe Double
postSubscriptionSchedulesRequestBodyDefaultSettings'ApplicationFeePercent PostSubscriptionSchedulesRequestBodyDefaultSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"automatic_tax" Text
-> Maybe
     PostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax'
postSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax PostSubscriptionSchedulesRequestBodyDefaultSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"billing_cycle_anchor" Text
-> Maybe
     PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
postSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor PostSubscriptionSchedulesRequestBodyDefaultSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"billing_thresholds" Text
-> Maybe
     PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'Variants
postSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds PostSubscriptionSchedulesRequestBodyDefaultSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"collection_method" Text
-> Maybe
     PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
postSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod PostSubscriptionSchedulesRequestBodyDefaultSettings'
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..= PostSubscriptionSchedulesRequestBodyDefaultSettings' -> Maybe Text
postSubscriptionSchedulesRequestBodyDefaultSettings'DefaultPaymentMethod PostSubscriptionSchedulesRequestBodyDefaultSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"invoice_settings" Text
-> Maybe
     PostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings'
postSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings PostSubscriptionSchedulesRequestBodyDefaultSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"transfer_data" Text
-> Maybe
     PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'Variants
postSubscriptionSchedulesRequestBodyDefaultSettings'TransferData PostSubscriptionSchedulesRequestBodyDefaultSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesRequestBodyDefaultSettings' -> Encoding
toEncoding PostSubscriptionSchedulesRequestBodyDefaultSettings'
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..= PostSubscriptionSchedulesRequestBodyDefaultSettings'
-> Maybe Double
postSubscriptionSchedulesRequestBodyDefaultSettings'ApplicationFeePercent PostSubscriptionSchedulesRequestBodyDefaultSettings'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"automatic_tax" Text
-> Maybe
     PostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax'
postSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax PostSubscriptionSchedulesRequestBodyDefaultSettings'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"billing_cycle_anchor" Text
-> Maybe
     PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
postSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor PostSubscriptionSchedulesRequestBodyDefaultSettings'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"billing_thresholds" Text
-> Maybe
     PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'Variants
postSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds PostSubscriptionSchedulesRequestBodyDefaultSettings'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"collection_method" Text
-> Maybe
     PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
postSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod PostSubscriptionSchedulesRequestBodyDefaultSettings'
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..= PostSubscriptionSchedulesRequestBodyDefaultSettings' -> Maybe Text
postSubscriptionSchedulesRequestBodyDefaultSettings'DefaultPaymentMethod PostSubscriptionSchedulesRequestBodyDefaultSettings'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"invoice_settings" Text
-> Maybe
     PostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings'
postSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings PostSubscriptionSchedulesRequestBodyDefaultSettings'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"transfer_data" Text
-> Maybe
     PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBodyDefaultSettings'
-> Maybe
     PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'Variants
postSubscriptionSchedulesRequestBodyDefaultSettings'TransferData PostSubscriptionSchedulesRequestBodyDefaultSettings'
obj))))))))

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

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

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

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax' where
  toJSON :: PostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax'
-> Value
toJSON PostSubscriptionSchedulesRequestBodyDefaultSettings'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..= PostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax'
-> Bool
postSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax'Enabled PostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax'
-> Encoding
toEncoding PostSubscriptionSchedulesRequestBodyDefaultSettings'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..= PostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax'
-> Bool
postSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax'Enabled PostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax'
obj)

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax'
parseJSON = String
-> (Object
    -> Parser
         PostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax')
-> Value
-> Parser
     PostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax'" (\Object
obj -> (Bool
 -> PostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax')
-> Parser
     (Bool
      -> PostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Bool
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax'
PostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax' Parser
  (Bool
   -> PostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax')
-> Parser Bool
-> Parser
     PostSubscriptionSchedulesRequestBodyDefaultSettings'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 'PostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax'' with all required fields.
mkPostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax' ::
  -- | 'postSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax'Enabled'
  GHC.Types.Bool ->
  PostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax'
mkPostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax' :: Bool
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax'
mkPostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax' Bool
postSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax'Enabled = PostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax' :: Bool
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax'
PostSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax' {postSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax'Enabled :: Bool
postSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax'Enabled = Bool
postSubscriptionSchedulesRequestBodyDefaultSettings'AutomaticTax'Enabled}

-- | Defines the enum schema located at @paths.\/v1\/subscription_schedules.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.default_settings.properties.billing_cycle_anchor@ in the specification.
data PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostSubscriptionSchedulesRequestBodyDefaultSettings'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.
    PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"automatic"@
    PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'EnumAutomatic
  | -- | Represents the JSON value @"phase_start"@
    PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'EnumPhaseStart
  deriving (Int
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
-> ShowS
[PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor']
-> ShowS
PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
-> String
(Int
 -> PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
 -> ShowS)
-> (PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
    -> String)
-> ([PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor']
    -> ShowS)
-> Show
     PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor']
-> ShowS
$cshowList :: [PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor']
-> ShowS
show :: PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
-> String
$cshow :: PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
-> ShowS
$cshowsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
-> ShowS
GHC.Show.Show, PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
-> Bool
(PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
 -> PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
 -> Bool)
-> (PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
    -> PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
    -> Bool)
-> Eq
     PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
-> Bool
$c/= :: PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
-> Bool
== :: PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
-> Bool
$c== :: PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
-> Bool
GHC.Classes.Eq)

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

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
parseJSON Value
val =
    PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
-> Parser
     PostSubscriptionSchedulesRequestBodyDefaultSettings'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" -> PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'EnumAutomatic
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"phase_start" -> PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'EnumPhaseStart
            | Bool
GHC.Base.otherwise -> Value
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'
PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingCycleAnchor'Other Value
val
      )

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

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1 where
  toJSON :: PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> Value
toJSON PostSubscriptionSchedulesRequestBodyDefaultSettings'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..= PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> Maybe Int
postSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1AmountGte PostSubscriptionSchedulesRequestBodyDefaultSettings'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..= PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> Maybe Bool
postSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1ResetBillingCycleAnchor PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> Encoding
toEncoding PostSubscriptionSchedulesRequestBodyDefaultSettings'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..= PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> Maybe Int
postSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1AmountGte PostSubscriptionSchedulesRequestBodyDefaultSettings'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..= PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> Maybe Bool
postSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1ResetBillingCycleAnchor PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1
obj))

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1 where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1
parseJSON = String
-> (Object
    -> Parser
         PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1)
-> Value
-> Parser
     PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1" (\Object
obj -> ((Maybe Int
 -> Maybe Bool
 -> PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1)
-> Parser
     (Maybe Int
      -> Maybe Bool
      -> PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Int
-> Maybe Bool
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1
PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1 Parser
  (Maybe Int
   -> Maybe Bool
   -> PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1)
-> Parser (Maybe Int)
-> Parser
     (Maybe Bool
      -> PostSubscriptionSchedulesRequestBodyDefaultSettings'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
   -> PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1)
-> Parser (Maybe Bool)
-> Parser
     PostSubscriptionSchedulesRequestBodyDefaultSettings'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 'PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1' with all required fields.
mkPostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1 :: PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1
mkPostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1 :: PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1
mkPostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1 =
  PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1 :: Maybe Int
-> Maybe Bool
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1
PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1
    { postSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1AmountGte :: Maybe Int
postSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1AmountGte = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1ResetBillingCycleAnchor :: Maybe Bool
postSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1ResetBillingCycleAnchor = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing
    }

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

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

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'Variants where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'Variants
parseJSON Value
val =
    if
        | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"" -> PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'Variants
-> Parser
     PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'Variants
PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'EmptyString
        | Bool
GHC.Base.otherwise -> case (PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'Variants
PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1 (PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1
 -> PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'Variants)
-> Result
     PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1
-> Result
     PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value
-> Result
     PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'OneOf1
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result
  PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'Variants
-> Result
     PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'Variants
-> Result
     PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result
     PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched" of
          Data.Aeson.Types.Internal.Success PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'Variants
a -> PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'Variants
-> Parser
     PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesRequestBodyDefaultSettings'BillingThresholds'Variants
a
          Data.Aeson.Types.Internal.Error String
a -> String
-> Parser
     PostSubscriptionSchedulesRequestBodyDefaultSettings'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.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.default_settings.properties.collection_method@ in the specification.
data PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostSubscriptionSchedulesRequestBodyDefaultSettings'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.
    PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"charge_automatically"@
    PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'EnumChargeAutomatically
  | -- | Represents the JSON value @"send_invoice"@
    PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'EnumSendInvoice
  deriving (Int
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
-> ShowS
[PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod']
-> ShowS
PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
-> String
(Int
 -> PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
 -> ShowS)
-> (PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
    -> String)
-> ([PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod']
    -> ShowS)
-> Show
     PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod']
-> ShowS
$cshowList :: [PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod']
-> ShowS
show :: PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
-> String
$cshow :: PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
-> ShowS
$cshowsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
-> ShowS
GHC.Show.Show, PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
-> Bool
(PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
 -> PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
 -> Bool)
-> (PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
    -> PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
    -> Bool)
-> Eq
     PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
-> Bool
$c/= :: PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
-> Bool
== :: PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
-> Bool
$c== :: PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
-> Bool
GHC.Classes.Eq)

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

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
parseJSON Value
val =
    PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
-> Parser
     PostSubscriptionSchedulesRequestBodyDefaultSettings'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" -> PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'EnumChargeAutomatically
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"send_invoice" -> PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'EnumSendInvoice
            | Bool
GHC.Base.otherwise -> Value
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'
PostSubscriptionSchedulesRequestBodyDefaultSettings'CollectionMethod'Other Value
val
      )

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

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings' where
  toJSON :: PostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings'
-> Value
toJSON PostSubscriptionSchedulesRequestBodyDefaultSettings'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..= PostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings'
-> Maybe Int
postSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings'DaysUntilDue PostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings'
-> Encoding
toEncoding PostSubscriptionSchedulesRequestBodyDefaultSettings'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..= PostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings'
-> Maybe Int
postSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings'DaysUntilDue PostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings'
obj)

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings'
parseJSON = String
-> (Object
    -> Parser
         PostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings')
-> Value
-> Parser
     PostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings'" (\Object
obj -> (Maybe Int
 -> PostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings')
-> Parser
     (Maybe Int
      -> PostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Int
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings'
PostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings' Parser
  (Maybe Int
   -> PostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings')
-> Parser (Maybe Int)
-> Parser
     PostSubscriptionSchedulesRequestBodyDefaultSettings'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 'PostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings'' with all required fields.
mkPostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings' :: PostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings'
mkPostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings' :: PostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings'
mkPostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings' = PostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings' :: Maybe Int
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings'
PostSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings' {postSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings'DaysUntilDue :: Maybe Int
postSubscriptionSchedulesRequestBodyDefaultSettings'InvoiceSettings'DaysUntilDue = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing}

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

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1 where
  toJSON :: PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1
-> Value
toJSON PostSubscriptionSchedulesRequestBodyDefaultSettings'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..= PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1
-> Maybe Double
postSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1AmountPercent PostSubscriptionSchedulesRequestBodyDefaultSettings'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..= PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1
-> Text
postSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1Destination PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1
-> Encoding
toEncoding PostSubscriptionSchedulesRequestBodyDefaultSettings'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..= PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1
-> Maybe Double
postSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1AmountPercent PostSubscriptionSchedulesRequestBodyDefaultSettings'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..= PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1
-> Text
postSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1Destination PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1
obj))

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1 where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1
parseJSON = String
-> (Object
    -> Parser
         PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1)
-> Value
-> Parser
     PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1" (\Object
obj -> ((Maybe Double
 -> Text
 -> PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1)
-> Parser
     (Maybe Double
      -> Text
      -> PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Double
-> Text
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1
PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1 Parser
  (Maybe Double
   -> Text
   -> PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1)
-> Parser (Maybe Double)
-> Parser
     (Text
      -> PostSubscriptionSchedulesRequestBodyDefaultSettings'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
   -> PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1)
-> Parser Text
-> Parser
     PostSubscriptionSchedulesRequestBodyDefaultSettings'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 'PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1' with all required fields.
mkPostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1 ::
  -- | 'postSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1Destination'
  Data.Text.Internal.Text ->
  PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1
mkPostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1 :: Text
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1
mkPostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1 Text
postSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1Destination =
  PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1 :: Maybe Double
-> Text
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1
PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1
    { postSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1AmountPercent :: Maybe Double
postSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1AmountPercent = Maybe Double
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1Destination :: Text
postSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1Destination = Text
postSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1Destination
    }

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

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

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'Variants where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'Variants
parseJSON Value
val =
    if
        | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"" -> PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'Variants
-> Parser
     PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'Variants
PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'EmptyString
        | Bool
GHC.Base.otherwise -> case (PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1
-> PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'Variants
PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1 (PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1
 -> PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'Variants)
-> Result
     PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1
-> Result
     PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value
-> Result
     PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'OneOf1
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result
  PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'Variants
-> Result
     PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'Variants
-> Result
     PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result
     PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched" of
          Data.Aeson.Types.Internal.Success PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'Variants
a -> PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'Variants
-> Parser
     PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesRequestBodyDefaultSettings'TransferData'Variants
a
          Data.Aeson.Types.Internal.Error String
a -> String
-> Parser
     PostSubscriptionSchedulesRequestBodyDefaultSettings'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.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 PostSubscriptionSchedulesRequestBodyEndBehavior'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostSubscriptionSchedulesRequestBodyEndBehavior'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.
    PostSubscriptionSchedulesRequestBodyEndBehavior'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"cancel"@
    PostSubscriptionSchedulesRequestBodyEndBehavior'EnumCancel
  | -- | Represents the JSON value @"none"@
    PostSubscriptionSchedulesRequestBodyEndBehavior'EnumNone
  | -- | Represents the JSON value @"release"@
    PostSubscriptionSchedulesRequestBodyEndBehavior'EnumRelease
  | -- | Represents the JSON value @"renew"@
    PostSubscriptionSchedulesRequestBodyEndBehavior'EnumRenew
  deriving (Int -> PostSubscriptionSchedulesRequestBodyEndBehavior' -> ShowS
[PostSubscriptionSchedulesRequestBodyEndBehavior'] -> ShowS
PostSubscriptionSchedulesRequestBodyEndBehavior' -> String
(Int -> PostSubscriptionSchedulesRequestBodyEndBehavior' -> ShowS)
-> (PostSubscriptionSchedulesRequestBodyEndBehavior' -> String)
-> ([PostSubscriptionSchedulesRequestBodyEndBehavior'] -> ShowS)
-> Show PostSubscriptionSchedulesRequestBodyEndBehavior'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSubscriptionSchedulesRequestBodyEndBehavior'] -> ShowS
$cshowList :: [PostSubscriptionSchedulesRequestBodyEndBehavior'] -> ShowS
show :: PostSubscriptionSchedulesRequestBodyEndBehavior' -> String
$cshow :: PostSubscriptionSchedulesRequestBodyEndBehavior' -> String
showsPrec :: Int -> PostSubscriptionSchedulesRequestBodyEndBehavior' -> ShowS
$cshowsPrec :: Int -> PostSubscriptionSchedulesRequestBodyEndBehavior' -> ShowS
GHC.Show.Show, PostSubscriptionSchedulesRequestBodyEndBehavior'
-> PostSubscriptionSchedulesRequestBodyEndBehavior' -> Bool
(PostSubscriptionSchedulesRequestBodyEndBehavior'
 -> PostSubscriptionSchedulesRequestBodyEndBehavior' -> Bool)
-> (PostSubscriptionSchedulesRequestBodyEndBehavior'
    -> PostSubscriptionSchedulesRequestBodyEndBehavior' -> Bool)
-> Eq PostSubscriptionSchedulesRequestBodyEndBehavior'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesRequestBodyEndBehavior'
-> PostSubscriptionSchedulesRequestBodyEndBehavior' -> Bool
$c/= :: PostSubscriptionSchedulesRequestBodyEndBehavior'
-> PostSubscriptionSchedulesRequestBodyEndBehavior' -> Bool
== :: PostSubscriptionSchedulesRequestBodyEndBehavior'
-> PostSubscriptionSchedulesRequestBodyEndBehavior' -> Bool
$c== :: PostSubscriptionSchedulesRequestBodyEndBehavior'
-> PostSubscriptionSchedulesRequestBodyEndBehavior' -> Bool
GHC.Classes.Eq)

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

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyEndBehavior' where
  parseJSON :: Value -> Parser PostSubscriptionSchedulesRequestBodyEndBehavior'
parseJSON Value
val =
    PostSubscriptionSchedulesRequestBodyEndBehavior'
-> Parser PostSubscriptionSchedulesRequestBodyEndBehavior'
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" -> PostSubscriptionSchedulesRequestBodyEndBehavior'
PostSubscriptionSchedulesRequestBodyEndBehavior'EnumCancel
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"none" -> PostSubscriptionSchedulesRequestBodyEndBehavior'
PostSubscriptionSchedulesRequestBodyEndBehavior'EnumNone
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"release" -> PostSubscriptionSchedulesRequestBodyEndBehavior'
PostSubscriptionSchedulesRequestBodyEndBehavior'EnumRelease
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"renew" -> PostSubscriptionSchedulesRequestBodyEndBehavior'
PostSubscriptionSchedulesRequestBodyEndBehavior'EnumRenew
            | Bool
GHC.Base.otherwise -> Value -> PostSubscriptionSchedulesRequestBodyEndBehavior'
PostSubscriptionSchedulesRequestBodyEndBehavior'Other Value
val
      )

-- | Defines the oneOf schema located at @paths.\/v1\/subscription_schedules.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 PostSubscriptionSchedulesRequestBodyMetadata'Variants
  = -- | Represents the JSON value @""@
    PostSubscriptionSchedulesRequestBodyMetadata'EmptyString
  | PostSubscriptionSchedulesRequestBodyMetadata'Object Data.Aeson.Types.Internal.Object
  deriving (Int
-> PostSubscriptionSchedulesRequestBodyMetadata'Variants -> ShowS
[PostSubscriptionSchedulesRequestBodyMetadata'Variants] -> ShowS
PostSubscriptionSchedulesRequestBodyMetadata'Variants -> String
(Int
 -> PostSubscriptionSchedulesRequestBodyMetadata'Variants -> ShowS)
-> (PostSubscriptionSchedulesRequestBodyMetadata'Variants
    -> String)
-> ([PostSubscriptionSchedulesRequestBodyMetadata'Variants]
    -> ShowS)
-> Show PostSubscriptionSchedulesRequestBodyMetadata'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSubscriptionSchedulesRequestBodyMetadata'Variants] -> ShowS
$cshowList :: [PostSubscriptionSchedulesRequestBodyMetadata'Variants] -> ShowS
show :: PostSubscriptionSchedulesRequestBodyMetadata'Variants -> String
$cshow :: PostSubscriptionSchedulesRequestBodyMetadata'Variants -> String
showsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyMetadata'Variants -> ShowS
$cshowsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyMetadata'Variants -> ShowS
GHC.Show.Show, PostSubscriptionSchedulesRequestBodyMetadata'Variants
-> PostSubscriptionSchedulesRequestBodyMetadata'Variants -> Bool
(PostSubscriptionSchedulesRequestBodyMetadata'Variants
 -> PostSubscriptionSchedulesRequestBodyMetadata'Variants -> Bool)
-> (PostSubscriptionSchedulesRequestBodyMetadata'Variants
    -> PostSubscriptionSchedulesRequestBodyMetadata'Variants -> Bool)
-> Eq PostSubscriptionSchedulesRequestBodyMetadata'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesRequestBodyMetadata'Variants
-> PostSubscriptionSchedulesRequestBodyMetadata'Variants -> Bool
$c/= :: PostSubscriptionSchedulesRequestBodyMetadata'Variants
-> PostSubscriptionSchedulesRequestBodyMetadata'Variants -> Bool
== :: PostSubscriptionSchedulesRequestBodyMetadata'Variants
-> PostSubscriptionSchedulesRequestBodyMetadata'Variants -> Bool
$c== :: PostSubscriptionSchedulesRequestBodyMetadata'Variants
-> PostSubscriptionSchedulesRequestBodyMetadata'Variants -> Bool
GHC.Classes.Eq)

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

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyMetadata'Variants where
  parseJSON :: Value
-> Parser PostSubscriptionSchedulesRequestBodyMetadata'Variants
parseJSON Value
val =
    if
        | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"" -> PostSubscriptionSchedulesRequestBodyMetadata'Variants
-> Parser PostSubscriptionSchedulesRequestBodyMetadata'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesRequestBodyMetadata'Variants
PostSubscriptionSchedulesRequestBodyMetadata'EmptyString
        | Bool
GHC.Base.otherwise -> case (Object -> PostSubscriptionSchedulesRequestBodyMetadata'Variants
PostSubscriptionSchedulesRequestBodyMetadata'Object (Object -> PostSubscriptionSchedulesRequestBodyMetadata'Variants)
-> Result Object
-> Result PostSubscriptionSchedulesRequestBodyMetadata'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 PostSubscriptionSchedulesRequestBodyMetadata'Variants
-> Result PostSubscriptionSchedulesRequestBodyMetadata'Variants
-> Result PostSubscriptionSchedulesRequestBodyMetadata'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result PostSubscriptionSchedulesRequestBodyMetadata'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched" of
          Data.Aeson.Types.Internal.Success PostSubscriptionSchedulesRequestBodyMetadata'Variants
a -> PostSubscriptionSchedulesRequestBodyMetadata'Variants
-> Parser PostSubscriptionSchedulesRequestBodyMetadata'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesRequestBodyMetadata'Variants
a
          Data.Aeson.Types.Internal.Error String
a -> String
-> Parser PostSubscriptionSchedulesRequestBodyMetadata'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.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items@ in the specification.
data PostSubscriptionSchedulesRequestBodyPhases' = PostSubscriptionSchedulesRequestBodyPhases'
  { -- | add_invoice_items
    PostSubscriptionSchedulesRequestBodyPhases'
-> Maybe
     [PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems']
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems :: (GHC.Maybe.Maybe ([PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'])),
    -- | application_fee_percent
    PostSubscriptionSchedulesRequestBodyPhases' -> Maybe Double
postSubscriptionSchedulesRequestBodyPhases'ApplicationFeePercent :: (GHC.Maybe.Maybe GHC.Types.Double),
    -- | automatic_tax
    PostSubscriptionSchedulesRequestBodyPhases'
-> Maybe PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'
postSubscriptionSchedulesRequestBodyPhases'AutomaticTax :: (GHC.Maybe.Maybe PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'),
    -- | billing_cycle_anchor
    PostSubscriptionSchedulesRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
postSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor :: (GHC.Maybe.Maybe PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'),
    -- | billing_thresholds
    PostSubscriptionSchedulesRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'Variants
postSubscriptionSchedulesRequestBodyPhases'BillingThresholds :: (GHC.Maybe.Maybe PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'Variants),
    -- | collection_method
    PostSubscriptionSchedulesRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
postSubscriptionSchedulesRequestBodyPhases'CollectionMethod :: (GHC.Maybe.Maybe PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'),
    -- | coupon
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSubscriptionSchedulesRequestBodyPhases' -> Maybe Text
postSubscriptionSchedulesRequestBodyPhases'Coupon :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | default_payment_method
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSubscriptionSchedulesRequestBodyPhases' -> Maybe Text
postSubscriptionSchedulesRequestBodyPhases'DefaultPaymentMethod :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | default_tax_rates
    PostSubscriptionSchedulesRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesRequestBodyPhases'DefaultTaxRates'Variants
postSubscriptionSchedulesRequestBodyPhases'DefaultTaxRates :: (GHC.Maybe.Maybe PostSubscriptionSchedulesRequestBodyPhases'DefaultTaxRates'Variants),
    -- | end_date
    PostSubscriptionSchedulesRequestBodyPhases' -> Maybe Int
postSubscriptionSchedulesRequestBodyPhases'EndDate :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | invoice_settings
    PostSubscriptionSchedulesRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
postSubscriptionSchedulesRequestBodyPhases'InvoiceSettings :: (GHC.Maybe.Maybe PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'),
    -- | items
    PostSubscriptionSchedulesRequestBodyPhases'
-> [PostSubscriptionSchedulesRequestBodyPhases'Items']
postSubscriptionSchedulesRequestBodyPhases'Items :: ([PostSubscriptionSchedulesRequestBodyPhases'Items']),
    -- | iterations
    PostSubscriptionSchedulesRequestBodyPhases' -> Maybe Int
postSubscriptionSchedulesRequestBodyPhases'Iterations :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | proration_behavior
    PostSubscriptionSchedulesRequestBodyPhases'
-> Maybe
     PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
postSubscriptionSchedulesRequestBodyPhases'ProrationBehavior :: (GHC.Maybe.Maybe PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'),
    -- | transfer_data
    PostSubscriptionSchedulesRequestBodyPhases'
-> Maybe PostSubscriptionSchedulesRequestBodyPhases'TransferData'
postSubscriptionSchedulesRequestBodyPhases'TransferData :: (GHC.Maybe.Maybe PostSubscriptionSchedulesRequestBodyPhases'TransferData'),
    -- | trial
    PostSubscriptionSchedulesRequestBodyPhases' -> Maybe Bool
postSubscriptionSchedulesRequestBodyPhases'Trial :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | trial_end
    PostSubscriptionSchedulesRequestBodyPhases' -> Maybe Int
postSubscriptionSchedulesRequestBodyPhases'TrialEnd :: (GHC.Maybe.Maybe GHC.Types.Int)
  }
  deriving
    ( Int -> PostSubscriptionSchedulesRequestBodyPhases' -> ShowS
[PostSubscriptionSchedulesRequestBodyPhases'] -> ShowS
PostSubscriptionSchedulesRequestBodyPhases' -> String
(Int -> PostSubscriptionSchedulesRequestBodyPhases' -> ShowS)
-> (PostSubscriptionSchedulesRequestBodyPhases' -> String)
-> ([PostSubscriptionSchedulesRequestBodyPhases'] -> ShowS)
-> Show PostSubscriptionSchedulesRequestBodyPhases'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSubscriptionSchedulesRequestBodyPhases'] -> ShowS
$cshowList :: [PostSubscriptionSchedulesRequestBodyPhases'] -> ShowS
show :: PostSubscriptionSchedulesRequestBodyPhases' -> String
$cshow :: PostSubscriptionSchedulesRequestBodyPhases' -> String
showsPrec :: Int -> PostSubscriptionSchedulesRequestBodyPhases' -> ShowS
$cshowsPrec :: Int -> PostSubscriptionSchedulesRequestBodyPhases' -> ShowS
GHC.Show.Show,
      PostSubscriptionSchedulesRequestBodyPhases'
-> PostSubscriptionSchedulesRequestBodyPhases' -> Bool
(PostSubscriptionSchedulesRequestBodyPhases'
 -> PostSubscriptionSchedulesRequestBodyPhases' -> Bool)
-> (PostSubscriptionSchedulesRequestBodyPhases'
    -> PostSubscriptionSchedulesRequestBodyPhases' -> Bool)
-> Eq PostSubscriptionSchedulesRequestBodyPhases'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesRequestBodyPhases'
-> PostSubscriptionSchedulesRequestBodyPhases' -> Bool
$c/= :: PostSubscriptionSchedulesRequestBodyPhases'
-> PostSubscriptionSchedulesRequestBodyPhases' -> Bool
== :: PostSubscriptionSchedulesRequestBodyPhases'
-> PostSubscriptionSchedulesRequestBodyPhases' -> Bool
$c== :: PostSubscriptionSchedulesRequestBodyPhases'
-> PostSubscriptionSchedulesRequestBodyPhases' -> Bool
GHC.Classes.Eq
    )

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

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

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

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

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems' where
  toJSON :: PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'
-> Value
toJSON PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'
-> Maybe Text
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'Price PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"price_data" Text
-> Maybe
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'
-> Maybe
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'
-> Maybe Int
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'Quantity PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tax_rates" Text
-> Maybe
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'
-> Maybe
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'
-> Encoding
toEncoding PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'
-> Maybe Text
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'Price PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"price_data" Text
-> Maybe
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'
-> Maybe
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'
-> Maybe Int
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'Quantity PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"tax_rates" Text
-> Maybe
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'
-> Maybe
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'
obj))))

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

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

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

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData' where
  toJSON :: PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'
-> Value
toJSON PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'
-> Text
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'Currency PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'
-> Text
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'Product PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tax_behavior" Text
-> Maybe
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'
-> Maybe
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'
-> Maybe Int
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'UnitAmount PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'
-> Maybe Text
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'UnitAmountDecimal PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'
-> Encoding
toEncoding PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'
-> Text
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'Currency PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'
-> Text
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'Product PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"tax_behavior" Text
-> Maybe
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'
-> Maybe
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'
-> Maybe Int
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'UnitAmount PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'
-> Maybe Text
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'UnitAmountDecimal PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'
obj)))))

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'
parseJSON = String
-> (Object
    -> Parser
         PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData')
-> Value
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'" (\Object
obj -> (((((Text
 -> Text
 -> Maybe
      PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
 -> Maybe Int
 -> Maybe Text
 -> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData')
-> Parser
     (Text
      -> Text
      -> Maybe
           PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Text
-> Text
-> Maybe
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> Maybe Int
-> Maybe Text
-> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'
PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData' Parser
  (Text
   -> Text
   -> Maybe
        PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData')
-> Parser Text
-> Parser
     (Text
      -> Maybe
           PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> PostSubscriptionSchedulesRequestBodyPhases'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
        PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData')
-> Parser Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> PostSubscriptionSchedulesRequestBodyPhases'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
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData')
-> Parser
     (Maybe
        PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior')
-> Parser
     (Maybe Int
      -> Maybe Text
      -> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tax_behavior")) Parser
  (Maybe Int
   -> Maybe Text
   -> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData')
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> PostSubscriptionSchedulesRequestBodyPhases'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
   -> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData')
-> Parser (Maybe Text)
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'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 'PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'' with all required fields.
mkPostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData' ::
  -- | 'postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'Currency'
  Data.Text.Internal.Text ->
  -- | 'postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'Product'
  Data.Text.Internal.Text ->
  PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'
mkPostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData' :: Text
-> Text
-> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'
mkPostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData' Text
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'Currency Text
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'Product =
  PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData' :: Text
-> Text
-> Maybe
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> Maybe Int
-> Maybe Text
-> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'
PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'
    { postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'Currency :: Text
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'Currency = Text
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'Currency,
      postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'Product :: Text
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'Product = Text
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'Product,
      postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior :: Maybe
  PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior = Maybe
  PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'UnitAmount :: Maybe Int
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'UnitAmount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'UnitAmountDecimal :: Maybe Text
postSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'UnitAmountDecimal = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the enum schema located at @paths.\/v1\/subscription_schedules.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 PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostSubscriptionSchedulesRequestBodyPhases'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.
    PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"exclusive"@
    PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'EnumExclusive
  | -- | Represents the JSON value @"inclusive"@
    PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'EnumInclusive
  | -- | Represents the JSON value @"unspecified"@
    PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'EnumUnspecified
  deriving (Int
-> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> ShowS
[PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior']
-> ShowS
PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> String
(Int
 -> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
 -> ShowS)
-> (PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
    -> String)
-> ([PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior']
    -> ShowS)
-> Show
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior']
-> ShowS
$cshowList :: [PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior']
-> ShowS
show :: PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> String
$cshow :: PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> ShowS
$cshowsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> ShowS
GHC.Show.Show, PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> Bool
(PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
 -> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
 -> Bool)
-> (PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
    -> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
    -> Bool)
-> Eq
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> Bool
$c/= :: PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> Bool
== :: PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> Bool
$c== :: PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> Bool
GHC.Classes.Eq)

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

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
parseJSON Value
val =
    PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'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" -> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'EnumExclusive
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"inclusive" -> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'EnumInclusive
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"unspecified" -> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'EnumUnspecified
            | Bool
GHC.Base.otherwise -> Value
-> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'
PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'PriceData'TaxBehavior'Other Value
val
      )

-- | Defines the oneOf schema located at @paths.\/v1\/subscription_schedules.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 PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
  = -- | Represents the JSON value @""@
    PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'EmptyString
  | PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'ListTText ([Data.Text.Internal.Text])
  deriving (Int
-> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> ShowS
[PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants]
-> ShowS
PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> String
(Int
 -> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
 -> ShowS)
-> (PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
    -> String)
-> ([PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants]
    -> ShowS)
-> Show
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants]
-> ShowS
$cshowList :: [PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants]
-> ShowS
show :: PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> String
$cshow :: PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> ShowS
$cshowsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> ShowS
GHC.Show.Show, PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> Bool
(PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
 -> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
 -> Bool)
-> (PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
    -> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
    -> Bool)
-> Eq
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> Bool
$c/= :: PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> Bool
== :: PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> Bool
$c== :: PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> Bool
GHC.Classes.Eq)

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

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
parseJSON Value
val =
    if
        | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"" -> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'EmptyString
        | Bool
GHC.Base.otherwise -> case ([Text]
-> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'ListTText ([Text]
 -> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants)
-> Result [Text]
-> Result
     PostSubscriptionSchedulesRequestBodyPhases'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
  PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> Result
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> Result
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched" of
          Data.Aeson.Types.Internal.Success PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
a -> PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesRequestBodyPhases'AddInvoiceItems'TaxRates'Variants
a
          Data.Aeson.Types.Internal.Error String
a -> String
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'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.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.automatic_tax@ in the specification.
data PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax' = PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'
  { -- | enabled
    PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax' -> Bool
postSubscriptionSchedulesRequestBodyPhases'AutomaticTax'Enabled :: GHC.Types.Bool
  }
  deriving
    ( Int
-> PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'
-> ShowS
[PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'] -> ShowS
PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax' -> String
(Int
 -> PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'
 -> ShowS)
-> (PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'
    -> String)
-> ([PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax']
    -> ShowS)
-> Show PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'] -> ShowS
$cshowList :: [PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'] -> ShowS
show :: PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax' -> String
$cshow :: PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax' -> String
showsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'
-> ShowS
$cshowsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'
-> ShowS
GHC.Show.Show,
      PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'
-> PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax' -> Bool
(PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'
 -> PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'
 -> Bool)
-> (PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'
    -> PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'
    -> Bool)
-> Eq PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'
-> PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax' -> Bool
$c/= :: PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'
-> PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax' -> Bool
== :: PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'
-> PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax' -> Bool
$c== :: PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'
-> PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax' -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax' where
  toJSON :: PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax' -> Value
toJSON PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax' -> Bool
postSubscriptionSchedulesRequestBodyPhases'AutomaticTax'Enabled PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'
-> Encoding
toEncoding PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax' -> Bool
postSubscriptionSchedulesRequestBodyPhases'AutomaticTax'Enabled PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'
obj)

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax' where
  parseJSON :: Value
-> Parser PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'
parseJSON = String
-> (Object
    -> Parser PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax')
-> Value
-> Parser PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'" (\Object
obj -> (Bool -> PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax')
-> Parser
     (Bool -> PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Bool -> PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'
PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax' Parser
  (Bool -> PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax')
-> Parser Bool
-> Parser PostSubscriptionSchedulesRequestBodyPhases'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 'PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'' with all required fields.
mkPostSubscriptionSchedulesRequestBodyPhases'AutomaticTax' ::
  -- | 'postSubscriptionSchedulesRequestBodyPhases'AutomaticTax'Enabled'
  GHC.Types.Bool ->
  PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'
mkPostSubscriptionSchedulesRequestBodyPhases'AutomaticTax' :: Bool -> PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'
mkPostSubscriptionSchedulesRequestBodyPhases'AutomaticTax' Bool
postSubscriptionSchedulesRequestBodyPhases'AutomaticTax'Enabled = PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax' :: Bool -> PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax'
PostSubscriptionSchedulesRequestBodyPhases'AutomaticTax' {postSubscriptionSchedulesRequestBodyPhases'AutomaticTax'Enabled :: Bool
postSubscriptionSchedulesRequestBodyPhases'AutomaticTax'Enabled = Bool
postSubscriptionSchedulesRequestBodyPhases'AutomaticTax'Enabled}

-- | Defines the enum schema located at @paths.\/v1\/subscription_schedules.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.billing_cycle_anchor@ in the specification.
data PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostSubscriptionSchedulesRequestBodyPhases'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.
    PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"automatic"@
    PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'EnumAutomatic
  | -- | Represents the JSON value @"phase_start"@
    PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'EnumPhaseStart
  deriving (Int
-> PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
-> ShowS
[PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor']
-> ShowS
PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
-> String
(Int
 -> PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
 -> ShowS)
-> (PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
    -> String)
-> ([PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor']
    -> ShowS)
-> Show
     PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor']
-> ShowS
$cshowList :: [PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor']
-> ShowS
show :: PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
-> String
$cshow :: PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
-> ShowS
$cshowsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
-> ShowS
GHC.Show.Show, PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
-> PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
-> Bool
(PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
 -> PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
 -> Bool)
-> (PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
    -> PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
    -> Bool)
-> Eq
     PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
-> PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
-> Bool
$c/= :: PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
-> PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
-> Bool
== :: PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
-> PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
-> Bool
$c== :: PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
-> PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
-> Bool
GHC.Classes.Eq)

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

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
parseJSON Value
val =
    PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'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" -> PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'EnumAutomatic
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"phase_start" -> PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'EnumPhaseStart
            | Bool
GHC.Base.otherwise -> Value
-> PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'
PostSubscriptionSchedulesRequestBodyPhases'BillingCycleAnchor'Other Value
val
      )

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

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1 where
  toJSON :: PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1
-> Value
toJSON PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1
-> Maybe Int
postSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1AmountGte PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1
-> Maybe Bool
postSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1ResetBillingCycleAnchor PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1
-> Encoding
toEncoding PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1
-> Maybe Int
postSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1AmountGte PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1
-> Maybe Bool
postSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1ResetBillingCycleAnchor PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1
obj))

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1 where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1
parseJSON = String
-> (Object
    -> Parser
         PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1)
-> Value
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1" (\Object
obj -> ((Maybe Int
 -> Maybe Bool
 -> PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1)
-> Parser
     (Maybe Int
      -> Maybe Bool
      -> PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Int
-> Maybe Bool
-> PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1
PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1 Parser
  (Maybe Int
   -> Maybe Bool
   -> PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1)
-> Parser (Maybe Int)
-> Parser
     (Maybe Bool
      -> PostSubscriptionSchedulesRequestBodyPhases'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
   -> PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1)
-> Parser (Maybe Bool)
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'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 'PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1' with all required fields.
mkPostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1 :: PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1
mkPostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1 :: PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1
mkPostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1 =
  PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1 :: Maybe Int
-> Maybe Bool
-> PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1
PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1
    { postSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1AmountGte :: Maybe Int
postSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1AmountGte = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1ResetBillingCycleAnchor :: Maybe Bool
postSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1ResetBillingCycleAnchor = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing
    }

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

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

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'Variants where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'Variants
parseJSON Value
val =
    if
        | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"" -> PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'Variants
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'Variants
PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'EmptyString
        | Bool
GHC.Base.otherwise -> case (PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1
-> PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'Variants
PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1 (PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1
 -> PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'Variants)
-> Result
     PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1
-> Result
     PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value
-> Result
     PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'OneOf1
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result
  PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'Variants
-> Result
     PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'Variants
-> Result
     PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result
     PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched" of
          Data.Aeson.Types.Internal.Success PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'Variants
a -> PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'Variants
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesRequestBodyPhases'BillingThresholds'Variants
a
          Data.Aeson.Types.Internal.Error String
a -> String
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'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.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.collection_method@ in the specification.
data PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostSubscriptionSchedulesRequestBodyPhases'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.
    PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"charge_automatically"@
    PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'EnumChargeAutomatically
  | -- | Represents the JSON value @"send_invoice"@
    PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'EnumSendInvoice
  deriving (Int
-> PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
-> ShowS
[PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod']
-> ShowS
PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
-> String
(Int
 -> PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
 -> ShowS)
-> (PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
    -> String)
-> ([PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod']
    -> ShowS)
-> Show
     PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod']
-> ShowS
$cshowList :: [PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod']
-> ShowS
show :: PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
-> String
$cshow :: PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
-> ShowS
$cshowsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
-> ShowS
GHC.Show.Show, PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
-> PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
-> Bool
(PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
 -> PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
 -> Bool)
-> (PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
    -> PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
    -> Bool)
-> Eq PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
-> PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
-> Bool
$c/= :: PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
-> PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
-> Bool
== :: PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
-> PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
-> Bool
$c== :: PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
-> PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
-> Bool
GHC.Classes.Eq)

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

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
parseJSON Value
val =
    PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'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" -> PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'EnumChargeAutomatically
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"send_invoice" -> PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'EnumSendInvoice
            | Bool
GHC.Base.otherwise -> Value
-> PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'
PostSubscriptionSchedulesRequestBodyPhases'CollectionMethod'Other Value
val
      )

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

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

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyPhases'DefaultTaxRates'Variants where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'DefaultTaxRates'Variants
parseJSON Value
val =
    if
        | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"" -> PostSubscriptionSchedulesRequestBodyPhases'DefaultTaxRates'Variants
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'DefaultTaxRates'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesRequestBodyPhases'DefaultTaxRates'Variants
PostSubscriptionSchedulesRequestBodyPhases'DefaultTaxRates'EmptyString
        | Bool
GHC.Base.otherwise -> case ([Text]
-> PostSubscriptionSchedulesRequestBodyPhases'DefaultTaxRates'Variants
PostSubscriptionSchedulesRequestBodyPhases'DefaultTaxRates'ListTText ([Text]
 -> PostSubscriptionSchedulesRequestBodyPhases'DefaultTaxRates'Variants)
-> Result [Text]
-> Result
     PostSubscriptionSchedulesRequestBodyPhases'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
  PostSubscriptionSchedulesRequestBodyPhases'DefaultTaxRates'Variants
-> Result
     PostSubscriptionSchedulesRequestBodyPhases'DefaultTaxRates'Variants
-> Result
     PostSubscriptionSchedulesRequestBodyPhases'DefaultTaxRates'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result
     PostSubscriptionSchedulesRequestBodyPhases'DefaultTaxRates'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched" of
          Data.Aeson.Types.Internal.Success PostSubscriptionSchedulesRequestBodyPhases'DefaultTaxRates'Variants
a -> PostSubscriptionSchedulesRequestBodyPhases'DefaultTaxRates'Variants
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'DefaultTaxRates'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesRequestBodyPhases'DefaultTaxRates'Variants
a
          Data.Aeson.Types.Internal.Error String
a -> String
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'DefaultTaxRates'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.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.invoice_settings@ in the specification.
data PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings' = PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
  { -- | days_until_due
    PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
-> Maybe Int
postSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'DaysUntilDue :: (GHC.Maybe.Maybe GHC.Types.Int)
  }
  deriving
    ( Int
-> PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
-> ShowS
[PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings']
-> ShowS
PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
-> String
(Int
 -> PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
 -> ShowS)
-> (PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
    -> String)
-> ([PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings']
    -> ShowS)
-> Show PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings']
-> ShowS
$cshowList :: [PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings']
-> ShowS
show :: PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
-> String
$cshow :: PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
-> ShowS
$cshowsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
-> ShowS
GHC.Show.Show,
      PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
-> PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
-> Bool
(PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
 -> PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
 -> Bool)
-> (PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
    -> PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
    -> Bool)
-> Eq PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
-> PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
-> Bool
$c/= :: PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
-> PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
-> Bool
== :: PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
-> PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
-> Bool
$c== :: PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
-> PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings' where
  toJSON :: PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
-> Value
toJSON PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
-> Maybe Int
postSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'DaysUntilDue PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
-> Encoding
toEncoding PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
-> Maybe Int
postSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'DaysUntilDue PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
obj)

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
parseJSON = String
-> (Object
    -> Parser
         PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings')
-> Value
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'" (\Object
obj -> (Maybe Int
 -> PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings')
-> Parser
     (Maybe Int
      -> PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Int
-> PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings' Parser
  (Maybe Int
   -> PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings')
-> Parser (Maybe Int)
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'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 'PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'' with all required fields.
mkPostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings' :: PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
mkPostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings' :: PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
mkPostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings' = PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings' :: Maybe Int
-> PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'
PostSubscriptionSchedulesRequestBodyPhases'InvoiceSettings' {postSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'DaysUntilDue :: Maybe Int
postSubscriptionSchedulesRequestBodyPhases'InvoiceSettings'DaysUntilDue = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing}

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

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

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

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

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

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1 where
  toJSON :: PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1
-> Value
toJSON PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1
-> Int
postSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1UsageGte PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1
-> Encoding
toEncoding PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1
-> Int
postSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1UsageGte PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1
obj)

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1 where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1
parseJSON = String
-> (Object
    -> Parser
         PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1)
-> Value
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1" (\Object
obj -> (Int
 -> PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1)
-> Parser
     (Int
      -> PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Int
-> PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1
PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1 Parser
  (Int
   -> PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1)
-> Parser Int
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'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 'PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1' with all required fields.
mkPostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1 ::
  -- | 'postSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1UsageGte'
  GHC.Types.Int ->
  PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1
mkPostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1 :: Int
-> PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1
mkPostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1 Int
postSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1UsageGte = PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1 :: Int
-> PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1
PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1 {postSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1UsageGte :: Int
postSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1UsageGte = Int
postSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1UsageGte}

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

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

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'Variants where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'Variants
parseJSON Value
val =
    if
        | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"" -> PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'Variants
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'Variants
PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'EmptyString
        | Bool
GHC.Base.otherwise -> case (PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1
-> PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'Variants
PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1 (PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1
 -> PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'Variants)
-> Result
     PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1
-> Result
     PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'Variants
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> Value
-> Result
     PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'OneOf1
forall a. FromJSON a => Value -> Result a
Data.Aeson.Types.FromJSON.fromJSON Value
val) Result
  PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'Variants
-> Result
     PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'Variants
-> Result
     PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result
     PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched" of
          Data.Aeson.Types.Internal.Success PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'Variants
a -> PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'Variants
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesRequestBodyPhases'Items'BillingThresholds'Variants
a
          Data.Aeson.Types.Internal.Error String
a -> String
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'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.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.items.items.properties.price_data@ in the specification.
data PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData' = PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
  { -- | currency
    PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData' -> Text
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Currency :: Data.Text.Internal.Text,
    -- | product
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData' -> Text
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Product :: Data.Text.Internal.Text,
    -- | recurring
    PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring :: PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring',
    -- | tax_behavior
    PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> Maybe
     PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior :: (GHC.Maybe.Maybe PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'),
    -- | unit_amount
    PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> Maybe Int
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'UnitAmount :: (GHC.Maybe.Maybe GHC.Types.Int),
    -- | unit_amount_decimal
    PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> Maybe Text
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'UnitAmountDecimal :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> ShowS
[PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData']
-> ShowS
PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> String
(Int
 -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
 -> ShowS)
-> (PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
    -> String)
-> ([PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData']
    -> ShowS)
-> Show PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData']
-> ShowS
$cshowList :: [PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData']
-> ShowS
show :: PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> String
$cshow :: PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> ShowS
$cshowsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> ShowS
GHC.Show.Show,
      PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> Bool
(PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
 -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
 -> Bool)
-> (PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
    -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
    -> Bool)
-> Eq PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> Bool
$c/= :: PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> Bool
== :: PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> Bool
$c== :: PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData' where
  toJSON :: PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> Value
toJSON PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData' -> Text
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Currency PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData' -> Text
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Product PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"recurring" Text
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"tax_behavior" Text
-> Maybe
     PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> Maybe
     PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> Maybe Int
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'UnitAmount PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> Maybe Text
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'UnitAmountDecimal PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> Encoding
toEncoding PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData' -> Text
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Currency PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData' -> Text
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Product PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"recurring" Text
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"tax_behavior" Text
-> Maybe
     PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> Maybe
     PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> Maybe Int
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'UnitAmount PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
-> Maybe Text
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'UnitAmountDecimal PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
obj))))))

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
parseJSON = String
-> (Object
    -> Parser
         PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData')
-> Value
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'" (\Object
obj -> ((((((Text
 -> Text
 -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
 -> Maybe
      PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
 -> Maybe Int
 -> Maybe Text
 -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData')
-> Parser
     (Text
      -> Text
      -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
      -> Maybe
           PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Text
-> Text
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
-> Maybe
     PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
-> Maybe Int
-> Maybe Text
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData' Parser
  (Text
   -> Text
   -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
   -> Maybe
        PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData')
-> Parser Text
-> Parser
     (Text
      -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
      -> Maybe
           PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> PostSubscriptionSchedulesRequestBodyPhases'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
   -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
   -> Maybe
        PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData')
-> Parser Text
-> Parser
     (PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
      -> Maybe
           PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> PostSubscriptionSchedulesRequestBodyPhases'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
  (PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
   -> Maybe
        PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData')
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
-> Parser
     (Maybe
        PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
      -> Maybe Int
      -> Maybe Text
      -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"recurring")) Parser
  (Maybe
     PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
   -> Maybe Int
   -> Maybe Text
   -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData')
-> Parser
     (Maybe
        PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior')
-> Parser
     (Maybe Int
      -> Maybe Text
      -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"tax_behavior")) Parser
  (Maybe Int
   -> Maybe Text
   -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData')
-> Parser (Maybe Int)
-> Parser
     (Maybe Text
      -> PostSubscriptionSchedulesRequestBodyPhases'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
   -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData')
-> Parser (Maybe Text)
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'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 'PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'' with all required fields.
mkPostSubscriptionSchedulesRequestBodyPhases'Items'PriceData' ::
  -- | 'postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Currency'
  Data.Text.Internal.Text ->
  -- | 'postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Product'
  Data.Text.Internal.Text ->
  -- | 'postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
  PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring' ->
  PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
mkPostSubscriptionSchedulesRequestBodyPhases'Items'PriceData' :: Text
-> Text
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
mkPostSubscriptionSchedulesRequestBodyPhases'Items'PriceData' Text
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Currency Text
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Product PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring =
  PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData' :: Text
-> Text
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
-> Maybe
     PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
-> Maybe Int
-> Maybe Text
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'
    { postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Currency :: Text
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Currency = Text
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Currency,
      postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Product :: Text
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Product = Text
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Product,
      postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring :: PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring = PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring,
      postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior :: Maybe
  PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior = Maybe
  PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'UnitAmount :: Maybe Int
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'UnitAmount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'UnitAmountDecimal :: Maybe Text
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'UnitAmountDecimal = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

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

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

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
parseJSON = String
-> (Object
    -> Parser
         PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring')
-> Value
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'" (\Object
obj -> ((PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
 -> Maybe Int
 -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring')
-> Parser
     (PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
      -> Maybe Int
      -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> Maybe Int
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring' Parser
  (PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
   -> Maybe Int
   -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring')
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> Parser
     (Maybe Int
      -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
forall a. FromJSON a => Object -> Text -> Parser a
Data.Aeson.Types.FromJSON..: Text
"interval")) Parser
  (Maybe Int
   -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring')
-> Parser (Maybe Int)
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'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 'PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'' with all required fields.
mkPostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring' ::
  -- | 'postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
  PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval' ->
  PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
mkPostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring' :: PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
mkPostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring' PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval =
  PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring' :: PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> Maybe Int
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'
    { postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval :: PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval = PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval,
      postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'IntervalCount :: Maybe Int
postSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'IntervalCount = Maybe Int
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the enum schema located at @paths.\/v1\/subscription_schedules.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 PostSubscriptionSchedulesRequestBodyPhases'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.
    PostSubscriptionSchedulesRequestBodyPhases'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.
    PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"day"@
    PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'EnumDay
  | -- | Represents the JSON value @"month"@
    PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'EnumMonth
  | -- | Represents the JSON value @"week"@
    PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'EnumWeek
  | -- | Represents the JSON value @"year"@
    PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'EnumYear
  deriving (Int
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> ShowS
[PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval']
-> ShowS
PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> String
(Int
 -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
 -> ShowS)
-> (PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
    -> String)
-> ([PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval']
    -> ShowS)
-> Show
     PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval']
-> ShowS
$cshowList :: [PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval']
-> ShowS
show :: PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> String
$cshow :: PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> ShowS
$cshowsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> ShowS
GHC.Show.Show, PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> Bool
(PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
 -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
 -> Bool)
-> (PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
    -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
    -> Bool)
-> Eq
     PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> Bool
$c/= :: PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> Bool
== :: PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> Bool
$c== :: PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> Bool
GHC.Classes.Eq)

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

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
parseJSON Value
val =
    PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'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" -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'EnumDay
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"month" -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'EnumMonth
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"week" -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'EnumWeek
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"year" -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'EnumYear
            | Bool
GHC.Base.otherwise -> Value
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'
PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'Recurring'Interval'Other Value
val
      )

-- | Defines the enum schema located at @paths.\/v1\/subscription_schedules.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 PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostSubscriptionSchedulesRequestBodyPhases'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.
    PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"exclusive"@
    PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'EnumExclusive
  | -- | Represents the JSON value @"inclusive"@
    PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'EnumInclusive
  | -- | Represents the JSON value @"unspecified"@
    PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'EnumUnspecified
  deriving (Int
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
-> ShowS
[PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior']
-> ShowS
PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
-> String
(Int
 -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
 -> ShowS)
-> (PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
    -> String)
-> ([PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior']
    -> ShowS)
-> Show
     PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior']
-> ShowS
$cshowList :: [PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior']
-> ShowS
show :: PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
-> String
$cshow :: PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
-> ShowS
$cshowsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
-> ShowS
GHC.Show.Show, PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
-> Bool
(PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
 -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
 -> Bool)
-> (PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
    -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
    -> Bool)
-> Eq
     PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
-> Bool
$c/= :: PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
-> Bool
== :: PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
-> Bool
$c== :: PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
-> Bool
GHC.Classes.Eq)

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

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
parseJSON Value
val =
    PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'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" -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'EnumExclusive
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"inclusive" -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'EnumInclusive
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"unspecified" -> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'EnumUnspecified
            | Bool
GHC.Base.otherwise -> Value
-> PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'
PostSubscriptionSchedulesRequestBodyPhases'Items'PriceData'TaxBehavior'Other Value
val
      )

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

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

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyPhases'Items'TaxRates'Variants where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'Items'TaxRates'Variants
parseJSON Value
val =
    if
        | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"" -> PostSubscriptionSchedulesRequestBodyPhases'Items'TaxRates'Variants
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'Items'TaxRates'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesRequestBodyPhases'Items'TaxRates'Variants
PostSubscriptionSchedulesRequestBodyPhases'Items'TaxRates'EmptyString
        | Bool
GHC.Base.otherwise -> case ([Text]
-> PostSubscriptionSchedulesRequestBodyPhases'Items'TaxRates'Variants
PostSubscriptionSchedulesRequestBodyPhases'Items'TaxRates'ListTText ([Text]
 -> PostSubscriptionSchedulesRequestBodyPhases'Items'TaxRates'Variants)
-> Result [Text]
-> Result
     PostSubscriptionSchedulesRequestBodyPhases'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
  PostSubscriptionSchedulesRequestBodyPhases'Items'TaxRates'Variants
-> Result
     PostSubscriptionSchedulesRequestBodyPhases'Items'TaxRates'Variants
-> Result
     PostSubscriptionSchedulesRequestBodyPhases'Items'TaxRates'Variants
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
GHC.Base.<|> String
-> Result
     PostSubscriptionSchedulesRequestBodyPhases'Items'TaxRates'Variants
forall a. String -> Result a
Data.Aeson.Types.Internal.Error String
"No variant matched" of
          Data.Aeson.Types.Internal.Success PostSubscriptionSchedulesRequestBodyPhases'Items'TaxRates'Variants
a -> PostSubscriptionSchedulesRequestBodyPhases'Items'TaxRates'Variants
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'Items'TaxRates'Variants
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure PostSubscriptionSchedulesRequestBodyPhases'Items'TaxRates'Variants
a
          Data.Aeson.Types.Internal.Error String
a -> String
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'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.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.phases.items.properties.proration_behavior@ in the specification.
data PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostSubscriptionSchedulesRequestBodyPhases'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.
    PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"always_invoice"@
    PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'EnumAlwaysInvoice
  | -- | Represents the JSON value @"create_prorations"@
    PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'EnumCreateProrations
  | -- | Represents the JSON value @"none"@
    PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'EnumNone
  deriving (Int
-> PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
-> ShowS
[PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior']
-> ShowS
PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
-> String
(Int
 -> PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
 -> ShowS)
-> (PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
    -> String)
-> ([PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior']
    -> ShowS)
-> Show
     PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior']
-> ShowS
$cshowList :: [PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior']
-> ShowS
show :: PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
-> String
$cshow :: PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
-> String
showsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
-> ShowS
$cshowsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
-> ShowS
GHC.Show.Show, PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
-> PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
-> Bool
(PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
 -> PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
 -> Bool)
-> (PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
    -> PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
    -> Bool)
-> Eq PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
-> PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
-> Bool
$c/= :: PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
-> PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
-> Bool
== :: PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
-> PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
-> Bool
$c== :: PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
-> PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
-> Bool
GHC.Classes.Eq)

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

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior' where
  parseJSON :: Value
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
parseJSON Value
val =
    PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
-> Parser
     PostSubscriptionSchedulesRequestBodyPhases'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" -> PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'EnumAlwaysInvoice
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"create_prorations" -> PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'EnumCreateProrations
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"none" -> PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'EnumNone
            | Bool
GHC.Base.otherwise -> Value
-> PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'
PostSubscriptionSchedulesRequestBodyPhases'ProrationBehavior'Other Value
val
      )

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

instance Data.Aeson.Types.ToJSON.ToJSON PostSubscriptionSchedulesRequestBodyPhases'TransferData' where
  toJSON :: PostSubscriptionSchedulesRequestBodyPhases'TransferData' -> Value
toJSON PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'TransferData'
-> Maybe Double
postSubscriptionSchedulesRequestBodyPhases'TransferData'AmountPercent PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'TransferData' -> Text
postSubscriptionSchedulesRequestBodyPhases'TransferData'Destination PostSubscriptionSchedulesRequestBodyPhases'TransferData'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostSubscriptionSchedulesRequestBodyPhases'TransferData'
-> Encoding
toEncoding PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'TransferData'
-> Maybe Double
postSubscriptionSchedulesRequestBodyPhases'TransferData'AmountPercent PostSubscriptionSchedulesRequestBodyPhases'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..= PostSubscriptionSchedulesRequestBodyPhases'TransferData' -> Text
postSubscriptionSchedulesRequestBodyPhases'TransferData'Destination PostSubscriptionSchedulesRequestBodyPhases'TransferData'
obj))

instance Data.Aeson.Types.FromJSON.FromJSON PostSubscriptionSchedulesRequestBodyPhases'TransferData' where
  parseJSON :: Value
-> Parser PostSubscriptionSchedulesRequestBodyPhases'TransferData'
parseJSON = String
-> (Object
    -> Parser PostSubscriptionSchedulesRequestBodyPhases'TransferData')
-> Value
-> Parser PostSubscriptionSchedulesRequestBodyPhases'TransferData'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostSubscriptionSchedulesRequestBodyPhases'TransferData'" (\Object
obj -> ((Maybe Double
 -> Text
 -> PostSubscriptionSchedulesRequestBodyPhases'TransferData')
-> Parser
     (Maybe Double
      -> Text
      -> PostSubscriptionSchedulesRequestBodyPhases'TransferData')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Double
-> Text -> PostSubscriptionSchedulesRequestBodyPhases'TransferData'
PostSubscriptionSchedulesRequestBodyPhases'TransferData' Parser
  (Maybe Double
   -> Text
   -> PostSubscriptionSchedulesRequestBodyPhases'TransferData')
-> Parser (Maybe Double)
-> Parser
     (Text -> PostSubscriptionSchedulesRequestBodyPhases'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 -> PostSubscriptionSchedulesRequestBodyPhases'TransferData')
-> Parser Text
-> Parser PostSubscriptionSchedulesRequestBodyPhases'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 'PostSubscriptionSchedulesRequestBodyPhases'TransferData'' with all required fields.
mkPostSubscriptionSchedulesRequestBodyPhases'TransferData' ::
  -- | 'postSubscriptionSchedulesRequestBodyPhases'TransferData'Destination'
  Data.Text.Internal.Text ->
  PostSubscriptionSchedulesRequestBodyPhases'TransferData'
mkPostSubscriptionSchedulesRequestBodyPhases'TransferData' :: Text -> PostSubscriptionSchedulesRequestBodyPhases'TransferData'
mkPostSubscriptionSchedulesRequestBodyPhases'TransferData' Text
postSubscriptionSchedulesRequestBodyPhases'TransferData'Destination =
  PostSubscriptionSchedulesRequestBodyPhases'TransferData' :: Maybe Double
-> Text -> PostSubscriptionSchedulesRequestBodyPhases'TransferData'
PostSubscriptionSchedulesRequestBodyPhases'TransferData'
    { postSubscriptionSchedulesRequestBodyPhases'TransferData'AmountPercent :: Maybe Double
postSubscriptionSchedulesRequestBodyPhases'TransferData'AmountPercent = Maybe Double
forall a. Maybe a
GHC.Maybe.Nothing,
      postSubscriptionSchedulesRequestBodyPhases'TransferData'Destination :: Text
postSubscriptionSchedulesRequestBodyPhases'TransferData'Destination = Text
postSubscriptionSchedulesRequestBodyPhases'TransferData'Destination
    }

-- | Defines the oneOf schema located at @paths.\/v1\/subscription_schedules.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.start_date.anyOf@ in the specification.
--
-- When the subscription schedule starts. We recommend using \`now\` so that it starts the subscription immediately. You can also use a Unix timestamp to backdate the subscription so that it starts on a past date, or set a future date for the subscription to start on.
data PostSubscriptionSchedulesRequestBodyStartDate'Variants
  = -- | Represents the JSON value @"now"@
    PostSubscriptionSchedulesRequestBodyStartDate'Now
  | PostSubscriptionSchedulesRequestBodyStartDate'Int GHC.Types.Int
  deriving (Int
-> PostSubscriptionSchedulesRequestBodyStartDate'Variants -> ShowS
[PostSubscriptionSchedulesRequestBodyStartDate'Variants] -> ShowS
PostSubscriptionSchedulesRequestBodyStartDate'Variants -> String
(Int
 -> PostSubscriptionSchedulesRequestBodyStartDate'Variants -> ShowS)
-> (PostSubscriptionSchedulesRequestBodyStartDate'Variants
    -> String)
-> ([PostSubscriptionSchedulesRequestBodyStartDate'Variants]
    -> ShowS)
-> Show PostSubscriptionSchedulesRequestBodyStartDate'Variants
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PostSubscriptionSchedulesRequestBodyStartDate'Variants] -> ShowS
$cshowList :: [PostSubscriptionSchedulesRequestBodyStartDate'Variants] -> ShowS
show :: PostSubscriptionSchedulesRequestBodyStartDate'Variants -> String
$cshow :: PostSubscriptionSchedulesRequestBodyStartDate'Variants -> String
showsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyStartDate'Variants -> ShowS
$cshowsPrec :: Int
-> PostSubscriptionSchedulesRequestBodyStartDate'Variants -> ShowS
GHC.Show.Show, PostSubscriptionSchedulesRequestBodyStartDate'Variants
-> PostSubscriptionSchedulesRequestBodyStartDate'Variants -> Bool
(PostSubscriptionSchedulesRequestBodyStartDate'Variants
 -> PostSubscriptionSchedulesRequestBodyStartDate'Variants -> Bool)
-> (PostSubscriptionSchedulesRequestBodyStartDate'Variants
    -> PostSubscriptionSchedulesRequestBodyStartDate'Variants -> Bool)
-> Eq PostSubscriptionSchedulesRequestBodyStartDate'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostSubscriptionSchedulesRequestBodyStartDate'Variants
-> PostSubscriptionSchedulesRequestBodyStartDate'Variants -> Bool
$c/= :: PostSubscriptionSchedulesRequestBodyStartDate'Variants
-> PostSubscriptionSchedulesRequestBodyStartDate'Variants -> Bool
== :: PostSubscriptionSchedulesRequestBodyStartDate'Variants
-> PostSubscriptionSchedulesRequestBodyStartDate'Variants -> Bool
$c== :: PostSubscriptionSchedulesRequestBodyStartDate'Variants
-> PostSubscriptionSchedulesRequestBodyStartDate'Variants -> Bool
GHC.Classes.Eq)

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

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

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