{-# 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 postBillingPortalConfigurationsConfiguration
module StripeAPI.Operations.PostBillingPortalConfigurationsConfiguration 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/billing_portal/configurations/{configuration}
--
-- \<p>Updates a configuration that describes the functionality of the customer portal.\<\/p>
postBillingPortalConfigurationsConfiguration ::
  forall m.
  StripeAPI.Common.MonadHTTP m =>
  -- | configuration | Constraints: Maximum length of 5000
  Data.Text.Internal.Text ->
  -- | The request body to send
  GHC.Maybe.Maybe PostBillingPortalConfigurationsConfigurationRequestBody ->
  -- | Monadic computation which returns the result of the operation
  StripeAPI.Common.StripeT m (Network.HTTP.Client.Types.Response PostBillingPortalConfigurationsConfigurationResponse)
postBillingPortalConfigurationsConfiguration :: Text
-> Maybe PostBillingPortalConfigurationsConfigurationRequestBody
-> StripeT
     m (Response PostBillingPortalConfigurationsConfigurationResponse)
postBillingPortalConfigurationsConfiguration
  Text
configuration
  Maybe PostBillingPortalConfigurationsConfigurationRequestBody
body =
    (Response ByteString
 -> Response PostBillingPortalConfigurationsConfigurationResponse)
-> StripeT m (Response ByteString)
-> StripeT
     m (Response PostBillingPortalConfigurationsConfigurationResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
      ( \Response ByteString
response_0 ->
          (ByteString
 -> PostBillingPortalConfigurationsConfigurationResponse)
-> Response ByteString
-> Response PostBillingPortalConfigurationsConfigurationResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
GHC.Base.fmap
            ( (String -> PostBillingPortalConfigurationsConfigurationResponse)
-> (PostBillingPortalConfigurationsConfigurationResponse
    -> PostBillingPortalConfigurationsConfigurationResponse)
-> Either
     String PostBillingPortalConfigurationsConfigurationResponse
-> PostBillingPortalConfigurationsConfigurationResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
Data.Either.either String -> PostBillingPortalConfigurationsConfigurationResponse
PostBillingPortalConfigurationsConfigurationResponseError PostBillingPortalConfigurationsConfigurationResponse
-> PostBillingPortalConfigurationsConfigurationResponse
forall a. a -> a
GHC.Base.id
                (Either String PostBillingPortalConfigurationsConfigurationResponse
 -> PostBillingPortalConfigurationsConfigurationResponse)
-> (ByteString
    -> Either
         String PostBillingPortalConfigurationsConfigurationResponse)
-> ByteString
-> PostBillingPortalConfigurationsConfigurationResponse
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) ->
                                     BillingPortal'configuration
-> PostBillingPortalConfigurationsConfigurationResponse
PostBillingPortalConfigurationsConfigurationResponse200
                                       (BillingPortal'configuration
 -> PostBillingPortalConfigurationsConfigurationResponse)
-> Either String BillingPortal'configuration
-> Either
     String PostBillingPortalConfigurationsConfigurationResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Data.Functor.<$> ( ByteString -> Either String BillingPortal'configuration
forall a. FromJSON a => ByteString -> Either String a
Data.Aeson.eitherDecodeStrict ByteString
body ::
                                                            Data.Either.Either
                                                              GHC.Base.String
                                                              BillingPortal'configuration
                                                        )
                                   | 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 -> PostBillingPortalConfigurationsConfigurationResponse
PostBillingPortalConfigurationsConfigurationResponseDefault
                                       (Error -> PostBillingPortalConfigurationsConfigurationResponse)
-> Either String Error
-> Either
     String PostBillingPortalConfigurationsConfigurationResponse
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 PostBillingPortalConfigurationsConfigurationResponse
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 PostBillingPortalConfigurationsConfigurationRequestBody
-> 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/billing_portal/configurations/" String -> String -> String
forall a. [a] -> [a] -> [a]
GHC.Base.++ (ByteString -> String
Data.ByteString.Char8.unpack (Bool -> ByteString -> ByteString
Network.HTTP.Types.URI.urlEncode Bool
GHC.Types.True (ByteString -> ByteString) -> ByteString -> ByteString
forall a b. (a -> b) -> a -> b
GHC.Base.$ (String -> ByteString
Data.ByteString.Char8.pack (String -> ByteString) -> String -> ByteString
forall a b. (a -> b) -> a -> b
GHC.Base.$ Text -> String
forall a. StringifyModel a => a -> String
StripeAPI.Common.stringifyModel Text
configuration)) String -> String -> String
forall a. [a] -> [a] -> [a]
GHC.Base.++ String
""))) [QueryParameter]
forall a. Monoid a => a
GHC.Base.mempty Maybe PostBillingPortalConfigurationsConfigurationRequestBody
body RequestBodyEncoding
StripeAPI.Common.RequestBodyEncodingFormData)

-- | Defines the object schema located at @paths.\/v1\/billing_portal\/configurations\/{configuration}.POST.requestBody.content.application\/x-www-form-urlencoded.schema@ in the specification.
data PostBillingPortalConfigurationsConfigurationRequestBody = PostBillingPortalConfigurationsConfigurationRequestBody
  { -- | active: Whether the configuration is active and can be used to create portal sessions.
    PostBillingPortalConfigurationsConfigurationRequestBody
-> Maybe Bool
postBillingPortalConfigurationsConfigurationRequestBodyActive :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | business_profile: The business information shown to customers in the portal.
    PostBillingPortalConfigurationsConfigurationRequestBody
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
postBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile :: (GHC.Maybe.Maybe PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'),
    -- | default_return_url: The default URL to redirect customers to when they click on the portal\'s link to return to your website. This can be [overriden](https:\/\/stripe.com\/docs\/api\/customer_portal\/sessions\/create\#create_portal_session-return_url) when creating the session.
    PostBillingPortalConfigurationsConfigurationRequestBody
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
postBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl :: (GHC.Maybe.Maybe PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants),
    -- | expand: Specifies which fields in the response should be expanded.
    PostBillingPortalConfigurationsConfigurationRequestBody
-> Maybe [Text]
postBillingPortalConfigurationsConfigurationRequestBodyExpand :: (GHC.Maybe.Maybe ([Data.Text.Internal.Text])),
    -- | features: Information about the features available in the portal.
    PostBillingPortalConfigurationsConfigurationRequestBody
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures :: (GHC.Maybe.Maybe PostBillingPortalConfigurationsConfigurationRequestBodyFeatures')
  }
  deriving
    ( Int
-> PostBillingPortalConfigurationsConfigurationRequestBody
-> String
-> String
[PostBillingPortalConfigurationsConfigurationRequestBody]
-> String -> String
PostBillingPortalConfigurationsConfigurationRequestBody -> String
(Int
 -> PostBillingPortalConfigurationsConfigurationRequestBody
 -> String
 -> String)
-> (PostBillingPortalConfigurationsConfigurationRequestBody
    -> String)
-> ([PostBillingPortalConfigurationsConfigurationRequestBody]
    -> String -> String)
-> Show PostBillingPortalConfigurationsConfigurationRequestBody
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostBillingPortalConfigurationsConfigurationRequestBody]
-> String -> String
$cshowList :: [PostBillingPortalConfigurationsConfigurationRequestBody]
-> String -> String
show :: PostBillingPortalConfigurationsConfigurationRequestBody -> String
$cshow :: PostBillingPortalConfigurationsConfigurationRequestBody -> String
showsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBody
-> String
-> String
$cshowsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBody
-> String
-> String
GHC.Show.Show,
      PostBillingPortalConfigurationsConfigurationRequestBody
-> PostBillingPortalConfigurationsConfigurationRequestBody -> Bool
(PostBillingPortalConfigurationsConfigurationRequestBody
 -> PostBillingPortalConfigurationsConfigurationRequestBody -> Bool)
-> (PostBillingPortalConfigurationsConfigurationRequestBody
    -> PostBillingPortalConfigurationsConfigurationRequestBody -> Bool)
-> Eq PostBillingPortalConfigurationsConfigurationRequestBody
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostBillingPortalConfigurationsConfigurationRequestBody
-> PostBillingPortalConfigurationsConfigurationRequestBody -> Bool
$c/= :: PostBillingPortalConfigurationsConfigurationRequestBody
-> PostBillingPortalConfigurationsConfigurationRequestBody -> Bool
== :: PostBillingPortalConfigurationsConfigurationRequestBody
-> PostBillingPortalConfigurationsConfigurationRequestBody -> Bool
$c== :: PostBillingPortalConfigurationsConfigurationRequestBody
-> PostBillingPortalConfigurationsConfigurationRequestBody -> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsConfigurationRequestBody where
  toJSON :: PostBillingPortalConfigurationsConfigurationRequestBody -> Value
toJSON PostBillingPortalConfigurationsConfigurationRequestBody
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"active" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBody
-> Maybe Bool
postBillingPortalConfigurationsConfigurationRequestBodyActive PostBillingPortalConfigurationsConfigurationRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"business_profile" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBody
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
postBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile PostBillingPortalConfigurationsConfigurationRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"default_return_url" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBody
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
postBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl PostBillingPortalConfigurationsConfigurationRequestBody
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..= PostBillingPortalConfigurationsConfigurationRequestBody
-> Maybe [Text]
postBillingPortalConfigurationsConfigurationRequestBodyExpand PostBillingPortalConfigurationsConfigurationRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"features" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBody
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures PostBillingPortalConfigurationsConfigurationRequestBody
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostBillingPortalConfigurationsConfigurationRequestBody -> Encoding
toEncoding PostBillingPortalConfigurationsConfigurationRequestBody
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"active" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBody
-> Maybe Bool
postBillingPortalConfigurationsConfigurationRequestBodyActive PostBillingPortalConfigurationsConfigurationRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"business_profile" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBody
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
postBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile PostBillingPortalConfigurationsConfigurationRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"default_return_url" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBody
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
postBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl PostBillingPortalConfigurationsConfigurationRequestBody
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..= PostBillingPortalConfigurationsConfigurationRequestBody
-> Maybe [Text]
postBillingPortalConfigurationsConfigurationRequestBodyExpand PostBillingPortalConfigurationsConfigurationRequestBody
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"features" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBody
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures PostBillingPortalConfigurationsConfigurationRequestBody
obj)))))

instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsConfigurationRequestBody where
  parseJSON :: Value
-> Parser PostBillingPortalConfigurationsConfigurationRequestBody
parseJSON = String
-> (Object
    -> Parser PostBillingPortalConfigurationsConfigurationRequestBody)
-> Value
-> Parser PostBillingPortalConfigurationsConfigurationRequestBody
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostBillingPortalConfigurationsConfigurationRequestBody" (\Object
obj -> (((((Maybe Bool
 -> Maybe
      PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
 -> Maybe
      PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
 -> Maybe [Text]
 -> Maybe
      PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
 -> PostBillingPortalConfigurationsConfigurationRequestBody)
-> Parser
     (Maybe Bool
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
      -> Maybe [Text]
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
      -> PostBillingPortalConfigurationsConfigurationRequestBody)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Bool
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
-> Maybe [Text]
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> PostBillingPortalConfigurationsConfigurationRequestBody
PostBillingPortalConfigurationsConfigurationRequestBody Parser
  (Maybe Bool
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
   -> Maybe [Text]
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
   -> PostBillingPortalConfigurationsConfigurationRequestBody)
-> Parser (Maybe Bool)
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
      -> Maybe [Text]
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
      -> PostBillingPortalConfigurationsConfigurationRequestBody)
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
"active")) Parser
  (Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
   -> Maybe [Text]
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
   -> PostBillingPortalConfigurationsConfigurationRequestBody)
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile')
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
      -> Maybe [Text]
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
      -> PostBillingPortalConfigurationsConfigurationRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"business_profile")) Parser
  (Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
   -> Maybe [Text]
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
   -> PostBillingPortalConfigurationsConfigurationRequestBody)
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants)
-> Parser
     (Maybe [Text]
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
      -> PostBillingPortalConfigurationsConfigurationRequestBody)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"default_return_url")) Parser
  (Maybe [Text]
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
   -> PostBillingPortalConfigurationsConfigurationRequestBody)
-> Parser (Maybe [Text])
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
      -> PostBillingPortalConfigurationsConfigurationRequestBody)
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
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
   -> PostBillingPortalConfigurationsConfigurationRequestBody)
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures')
-> Parser PostBillingPortalConfigurationsConfigurationRequestBody
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"features"))

-- | Create a new 'PostBillingPortalConfigurationsConfigurationRequestBody' with all required fields.
mkPostBillingPortalConfigurationsConfigurationRequestBody :: PostBillingPortalConfigurationsConfigurationRequestBody
mkPostBillingPortalConfigurationsConfigurationRequestBody :: PostBillingPortalConfigurationsConfigurationRequestBody
mkPostBillingPortalConfigurationsConfigurationRequestBody =
  PostBillingPortalConfigurationsConfigurationRequestBody :: Maybe Bool
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
-> Maybe [Text]
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> PostBillingPortalConfigurationsConfigurationRequestBody
PostBillingPortalConfigurationsConfigurationRequestBody
    { postBillingPortalConfigurationsConfigurationRequestBodyActive :: Maybe Bool
postBillingPortalConfigurationsConfigurationRequestBodyActive = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      postBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile :: Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
postBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile = Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
forall a. Maybe a
GHC.Maybe.Nothing,
      postBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl :: Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
postBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl = Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postBillingPortalConfigurationsConfigurationRequestBodyExpand :: Maybe [Text]
postBillingPortalConfigurationsConfigurationRequestBodyExpand = Maybe [Text]
forall a. Maybe a
GHC.Maybe.Nothing,
      postBillingPortalConfigurationsConfigurationRequestBodyFeatures :: Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures = Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/billing_portal\/configurations\/{configuration}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.business_profile@ in the specification.
--
-- The business information shown to customers in the portal.
data PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile' = PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
  { -- | headline
    --
    -- Constraints:
    --
    -- * Maximum length of 60
    PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> Maybe Text
postBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'Headline :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | privacy_policy_url
    PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> Maybe Text
postBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'PrivacyPolicyUrl :: (GHC.Maybe.Maybe Data.Text.Internal.Text),
    -- | terms_of_service_url
    PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> Maybe Text
postBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'TermsOfServiceUrl :: (GHC.Maybe.Maybe Data.Text.Internal.Text)
  }
  deriving
    ( Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> String
-> String
[PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile']
-> String -> String
PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> String
(Int
 -> PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
 -> String
 -> String)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
    -> String)
-> ([PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile']
    -> String -> String)
-> Show
     PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile']
-> String -> String
$cshowList :: [PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile']
-> String -> String
show :: PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> String
$cshow :: PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> String
showsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> String
-> String
$cshowsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> String
-> String
GHC.Show.Show,
      PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> Bool
(PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
 -> PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
 -> Bool)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
    -> PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
    -> Bool)
-> Eq
     PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> Bool
$c/= :: PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> Bool
== :: PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> Bool
$c== :: PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile' where
  toJSON :: PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> Value
toJSON PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"headline" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> Maybe Text
postBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'Headline PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"privacy_policy_url" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> Maybe Text
postBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'PrivacyPolicyUrl PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"terms_of_service_url" Text -> Maybe Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> Maybe Text
postBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'TermsOfServiceUrl PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> Encoding
toEncoding PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"headline" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> Maybe Text
postBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'Headline PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"privacy_policy_url" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> Maybe Text
postBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'PrivacyPolicyUrl PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"terms_of_service_url" Text -> Maybe Text -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
-> Maybe Text
postBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'TermsOfServiceUrl PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
obj)))

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

-- | Create a new 'PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'' with all required fields.
mkPostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile' :: PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
mkPostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile' :: PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
mkPostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile' =
  PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile' :: Maybe Text
-> Maybe Text
-> Maybe Text
-> PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
PostBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'
    { postBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'Headline :: Maybe Text
postBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'Headline = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'PrivacyPolicyUrl :: Maybe Text
postBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'PrivacyPolicyUrl = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing,
      postBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'TermsOfServiceUrl :: Maybe Text
postBillingPortalConfigurationsConfigurationRequestBodyBusinessProfile'TermsOfServiceUrl = Maybe Text
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the oneOf schema located at @paths.\/v1\/billing_portal\/configurations\/{configuration}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.default_return_url.anyOf@ in the specification.
--
-- The default URL to redirect customers to when they click on the portal\'s link to return to your website. This can be [overriden](https:\/\/stripe.com\/docs\/api\/customer_portal\/sessions\/create\#create_portal_session-return_url) when creating the session.
data PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
  = -- | Represents the JSON value @""@
    PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'EmptyString
  | PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Text Data.Text.Internal.Text
  deriving (Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
-> String
-> String
[PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants]
-> String -> String
PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
-> String
(Int
 -> PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
 -> String
 -> String)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
    -> String)
-> ([PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants]
    -> String -> String)
-> Show
     PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants]
-> String -> String
$cshowList :: [PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants]
-> String -> String
show :: PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
-> String
$cshow :: PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
-> String
showsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
-> String
-> String
GHC.Show.Show, PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
-> PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
-> Bool
(PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
 -> PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
 -> Bool)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
    -> PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
    -> Bool)
-> Eq
     PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
-> PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
-> Bool
$c/= :: PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
-> PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
-> Bool
== :: PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
-> PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
-> Bool
$c== :: PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
-> PostBillingPortalConfigurationsConfigurationRequestBodyDefaultReturnUrl'Variants
-> Bool
GHC.Classes.Eq)

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

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

-- | Defines the object schema located at @paths.\/v1\/billing_portal\/configurations\/{configuration}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features@ in the specification.
--
-- Information about the features available in the portal.
data PostBillingPortalConfigurationsConfigurationRequestBodyFeatures' = PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
  { -- | customer_update
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate :: (GHC.Maybe.Maybe PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'),
    -- | invoice_history
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory :: (GHC.Maybe.Maybe PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'),
    -- | payment_method_update
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate :: (GHC.Maybe.Maybe PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'),
    -- | subscription_cancel
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel :: (GHC.Maybe.Maybe PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'),
    -- | subscription_pause
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause :: (GHC.Maybe.Maybe PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'),
    -- | subscription_update
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate :: (GHC.Maybe.Maybe PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate')
  }
  deriving
    ( Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> String
-> String
[PostBillingPortalConfigurationsConfigurationRequestBodyFeatures']
-> String -> String
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> String
(Int
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
 -> String
 -> String)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
    -> String)
-> ([PostBillingPortalConfigurationsConfigurationRequestBodyFeatures']
    -> String -> String)
-> Show
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures']
-> String -> String
$cshowList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures']
-> String -> String
show :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> String
$cshow :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> String
showsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> String
-> String
$cshowsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> String
-> String
GHC.Show.Show,
      PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> Bool
(PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
 -> Bool)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
    -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
    -> Bool)
-> Eq
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> Bool
$c/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> Bool
== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> Bool
$c== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsConfigurationRequestBodyFeatures' where
  toJSON :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> Value
toJSON PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"customer_update" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"invoice_history" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"payment_method_update" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"subscription_cancel" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"subscription_pause" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"subscription_update" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> Encoding
toEncoding PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"customer_update" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"invoice_history" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"payment_method_update" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"subscription_cancel" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"subscription_pause" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"subscription_update" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
obj))))))

instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsConfigurationRequestBodyFeatures' where
  parseJSON :: Value
-> Parser
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
parseJSON = String
-> (Object
    -> Parser
         PostBillingPortalConfigurationsConfigurationRequestBodyFeatures')
-> Value
-> Parser
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'" (\Object
obj -> ((((((Maybe
   PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
 -> Maybe
      PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
 -> Maybe
      PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
 -> Maybe
      PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
 -> Maybe
      PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
 -> Maybe
      PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures')
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
      -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures' Parser
  (Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
   -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures')
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate')
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
      -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"customer_update")) Parser
  (Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
   -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures')
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory')
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
      -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"invoice_history")) Parser
  (Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
   -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures')
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate')
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
      -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"payment_method_update")) Parser
  (Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
   -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures')
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel')
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
      -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"subscription_cancel")) Parser
  (Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
   -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures')
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause')
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
      -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"subscription_pause")) Parser
  (Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
   -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures')
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate')
-> Parser
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"subscription_update"))

-- | Create a new 'PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'' with all required fields.
mkPostBillingPortalConfigurationsConfigurationRequestBodyFeatures' :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
mkPostBillingPortalConfigurationsConfigurationRequestBodyFeatures' :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
mkPostBillingPortalConfigurationsConfigurationRequestBodyFeatures' =
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures' :: Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'
    { postBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate :: Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate = Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
forall a. Maybe a
GHC.Maybe.Nothing,
      postBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory :: Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory = Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
forall a. Maybe a
GHC.Maybe.Nothing,
      postBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate :: Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate = Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
forall a. Maybe a
GHC.Maybe.Nothing,
      postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel :: Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel = Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
forall a. Maybe a
GHC.Maybe.Nothing,
      postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause :: Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause = Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
forall a. Maybe a
GHC.Maybe.Nothing,
      postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate :: Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate = Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the object schema located at @paths.\/v1\/billing_portal\/configurations\/{configuration}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.customer_update@ in the specification.
data PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate' = PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
  { -- | allowed_updates
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates :: (GHC.Maybe.Maybe PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants),
    -- | enabled
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> Maybe Bool
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'Enabled :: (GHC.Maybe.Maybe GHC.Types.Bool)
  }
  deriving
    ( Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> String
-> String
[PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate']
-> String -> String
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> String
(Int
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
 -> String
 -> String)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
    -> String)
-> ([PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate']
    -> String -> String)
-> Show
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate']
-> String -> String
$cshowList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate']
-> String -> String
show :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> String
$cshow :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> String
showsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> String
-> String
$cshowsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> String
-> String
GHC.Show.Show,
      PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> Bool
(PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
 -> Bool)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
    -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
    -> Bool)
-> Eq
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> Bool
$c/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> Bool
== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> Bool
$c== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate' where
  toJSON :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> Value
toJSON PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"allowed_updates" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"enabled" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> Maybe Bool
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'Enabled PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> Encoding
toEncoding PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"allowed_updates" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"enabled" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
-> Maybe Bool
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'Enabled PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
obj))

instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate' where
  parseJSON :: Value
-> Parser
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
parseJSON = String
-> (Object
    -> Parser
         PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate')
-> Value
-> Parser
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'" (\Object
obj -> ((Maybe
   PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
 -> Maybe Bool
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate')
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
      -> Maybe Bool
      -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
-> Maybe Bool
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate' Parser
  (Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
   -> Maybe Bool
   -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate')
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants)
-> Parser
     (Maybe Bool
      -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"allowed_updates")) Parser
  (Maybe Bool
   -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate')
-> Parser (Maybe Bool)
-> Parser
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
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
"enabled"))

-- | Create a new 'PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'' with all required fields.
mkPostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate' :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
mkPostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate' :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
mkPostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate' =
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate' :: Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
-> Maybe Bool
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'
    { postBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates :: Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates = Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'Enabled :: Maybe Bool
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'Enabled = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the enum schema located at @paths.\/v1\/billing_portal\/configurations\/{configuration}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.customer_update.properties.allowed_updates.anyOf.items@ in the specification.
data PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"address"@
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumAddress
  | -- | Represents the JSON value @"email"@
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumEmail
  | -- | Represents the JSON value @"phone"@
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumPhone
  | -- | Represents the JSON value @"shipping"@
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumShipping
  | -- | Represents the JSON value @"tax_id"@
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumTaxId
  deriving (Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
-> String
-> String
[PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1]
-> String -> String
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
-> String
(Int
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
 -> String
 -> String)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
    -> String)
-> ([PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1]
    -> String -> String)
-> Show
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1]
-> String -> String
$cshowList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1]
-> String -> String
show :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
-> String
$cshow :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
-> String
showsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
-> String
-> String
GHC.Show.Show, PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
-> Bool
(PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
 -> Bool)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
    -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
    -> Bool)
-> Eq
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
-> Bool
$c/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
-> Bool
== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
-> Bool
$c== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1 where
  toJSON :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
-> Value
toJSON (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1Other Value
val) = Value
val
  toJSON (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumAddress) = Value
"address"
  toJSON (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumEmail) = Value
"email"
  toJSON (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumPhone) = Value
"phone"
  toJSON (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumShipping) = Value
"shipping"
  toJSON (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumTaxId) = Value
"tax_id"

instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1 where
  parseJSON :: Value
-> Parser
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
parseJSON Value
val =
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
-> Parser
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
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
"address" -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumAddress
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"email" -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumEmail
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"phone" -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumPhone
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"shipping" -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumShipping
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"tax_id" -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1EnumTaxId
            | Bool
GHC.Base.otherwise -> Value
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1Other Value
val
      )

-- | Defines the oneOf schema located at @paths.\/v1\/billing_portal\/configurations\/{configuration}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.customer_update.properties.allowed_updates.anyOf@ in the specification.
data PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
  = -- | Represents the JSON value @""@
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'EmptyString
  | PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'ListTPostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1 ([PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1])
  deriving (Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
-> String
-> String
[PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants]
-> String -> String
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
-> String
(Int
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
 -> String
 -> String)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
    -> String)
-> ([PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants]
    -> String -> String)
-> Show
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants]
-> String -> String
$cshowList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants]
-> String -> String
show :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
-> String
$cshow :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
-> String
showsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
-> String
-> String
GHC.Show.Show, PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
-> Bool
(PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
 -> Bool)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
    -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
    -> Bool)
-> Eq
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
-> Bool
$c/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
-> Bool
== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
-> Bool
$c== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants where
  toJSON :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
-> Value
toJSON (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'ListTPostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1 [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1]
a) = [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1]
-> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'OneOf1]
a
  toJSON (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'Variants
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'CustomerUpdate'AllowedUpdates'EmptyString) = Value
""

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

-- | Defines the object schema located at @paths.\/v1\/billing_portal\/configurations\/{configuration}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.invoice_history@ in the specification.
data PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory' = PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
  { -- | enabled
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
-> Bool
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'Enabled :: GHC.Types.Bool
  }
  deriving
    ( Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
-> String
-> String
[PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory']
-> String -> String
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
-> String
(Int
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
 -> String
 -> String)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
    -> String)
-> ([PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory']
    -> String -> String)
-> Show
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory']
-> String -> String
$cshowList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory']
-> String -> String
show :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
-> String
$cshow :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
-> String
showsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
-> String
-> String
$cshowsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
-> String
-> String
GHC.Show.Show,
      PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
-> Bool
(PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
 -> Bool)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
    -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
    -> Bool)
-> Eq
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
-> Bool
$c/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
-> Bool
== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
-> Bool
$c== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'InvoiceHistory'
-> Bool
GHC.Classes.Eq
    )

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

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

-- | Defines the object schema located at @paths.\/v1\/billing_portal\/configurations\/{configuration}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.payment_method_update@ in the specification.
data PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate' = PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
  { -- | enabled
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
-> Bool
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'Enabled :: GHC.Types.Bool
  }
  deriving
    ( Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
-> String
-> String
[PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate']
-> String -> String
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
-> String
(Int
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
 -> String
 -> String)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
    -> String)
-> ([PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate']
    -> String -> String)
-> Show
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate']
-> String -> String
$cshowList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate']
-> String -> String
show :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
-> String
$cshow :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
-> String
showsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
-> String
-> String
$cshowsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
-> String
-> String
GHC.Show.Show,
      PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
-> Bool
(PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
 -> Bool)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
    -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
    -> Bool)
-> Eq
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
-> Bool
$c/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
-> Bool
== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
-> Bool
$c== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'PaymentMethodUpdate'
-> Bool
GHC.Classes.Eq
    )

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

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

-- | Defines the object schema located at @paths.\/v1\/billing_portal\/configurations\/{configuration}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.subscription_cancel@ in the specification.
data PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel' = PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
  { -- | enabled
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> Maybe Bool
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Enabled :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | mode
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode :: (GHC.Maybe.Maybe PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'),
    -- | proration_behavior
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior :: (GHC.Maybe.Maybe PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior')
  }
  deriving
    ( Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> String
-> String
[PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel']
-> String -> String
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> String
(Int
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
 -> String
 -> String)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
    -> String)
-> ([PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel']
    -> String -> String)
-> Show
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel']
-> String -> String
$cshowList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel']
-> String -> String
show :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> String
$cshow :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> String
showsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> String
-> String
$cshowsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> String
-> String
GHC.Show.Show,
      PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> Bool
(PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
 -> Bool)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
    -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
    -> Bool)
-> Eq
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> Bool
$c/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> Bool
== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> Bool
$c== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel' where
  toJSON :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> Value
toJSON PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"enabled" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> Maybe Bool
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Enabled PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"mode" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"proration_behavior" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> Encoding
toEncoding PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"enabled" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> Maybe Bool
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Enabled PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"mode" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"proration_behavior" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
obj)))

instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel' where
  parseJSON :: Value
-> Parser
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
parseJSON = String
-> (Object
    -> Parser
         PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel')
-> Value
-> Parser
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'" (\Object
obj -> (((Maybe Bool
 -> Maybe
      PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
 -> Maybe
      PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel')
-> Parser
     (Maybe Bool
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
      -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe Bool
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel' Parser
  (Maybe Bool
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
   -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel')
-> Parser (Maybe Bool)
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
      -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel')
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
"enabled")) Parser
  (Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
   -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel')
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode')
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
      -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"mode")) Parser
  (Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
   -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel')
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior')
-> Parser
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"proration_behavior"))

-- | Create a new 'PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'' with all required fields.
mkPostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel' :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
mkPostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel' :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
mkPostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel' =
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel' :: Maybe Bool
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'
    { postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Enabled :: Maybe Bool
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Enabled = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode :: Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode = Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
forall a. Maybe a
GHC.Maybe.Nothing,
      postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior :: Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior = Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the enum schema located at @paths.\/v1\/billing_portal\/configurations\/{configuration}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.subscription_cancel.properties.mode@ in the specification.
data PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'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.
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"at_period_end"@
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'EnumAtPeriodEnd
  | -- | Represents the JSON value @"immediately"@
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'EnumImmediately
  deriving (Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
-> String
-> String
[PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode']
-> String -> String
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
-> String
(Int
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
 -> String
 -> String)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
    -> String)
-> ([PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode']
    -> String -> String)
-> Show
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode']
-> String -> String
$cshowList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode']
-> String -> String
show :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
-> String
$cshow :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
-> String
showsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
-> String
-> String
$cshowsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
-> String
-> String
GHC.Show.Show, PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
-> Bool
(PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
 -> Bool)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
    -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
    -> Bool)
-> Eq
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
-> Bool
$c/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
-> Bool
== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
-> Bool
$c== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode' where
  toJSON :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
-> Value
toJSON (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'Other Value
val) = Value
val
  toJSON (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'EnumAtPeriodEnd) = Value
"at_period_end"
  toJSON (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'EnumImmediately) = Value
"immediately"

instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode' where
  parseJSON :: Value
-> Parser
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
parseJSON Value
val =
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
-> Parser
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
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
"at_period_end" -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'EnumAtPeriodEnd
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"immediately" -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'EnumImmediately
            | Bool
GHC.Base.otherwise -> Value
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'Mode'Other Value
val
      )

-- | Defines the enum schema located at @paths.\/v1\/billing_portal\/configurations\/{configuration}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.subscription_cancel.properties.proration_behavior@ in the specification.
data PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'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.
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"always_invoice"@
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'EnumAlwaysInvoice
  | -- | Represents the JSON value @"create_prorations"@
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'EnumCreateProrations
  | -- | Represents the JSON value @"none"@
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'EnumNone
  deriving (Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
-> String
-> String
[PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior']
-> String -> String
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
-> String
(Int
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
 -> String
 -> String)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
    -> String)
-> ([PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior']
    -> String -> String)
-> Show
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior']
-> String -> String
$cshowList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior']
-> String -> String
show :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
-> String
$cshow :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
-> String
showsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
-> String
-> String
$cshowsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
-> String
-> String
GHC.Show.Show, PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
-> Bool
(PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
 -> Bool)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
    -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
    -> Bool)
-> Eq
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
-> Bool
$c/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
-> Bool
== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
-> Bool
$c== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionCancel'ProrationBehavior'
-> Bool
GHC.Classes.Eq)

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

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

-- | Defines the object schema located at @paths.\/v1\/billing_portal\/configurations\/{configuration}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.subscription_pause@ in the specification.
data PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause' = PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
  { -- | enabled
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
-> Maybe Bool
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'Enabled :: (GHC.Maybe.Maybe GHC.Types.Bool)
  }
  deriving
    ( Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
-> String
-> String
[PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause']
-> String -> String
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
-> String
(Int
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
 -> String
 -> String)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
    -> String)
-> ([PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause']
    -> String -> String)
-> Show
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause']
-> String -> String
$cshowList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause']
-> String -> String
show :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
-> String
$cshow :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
-> String
showsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
-> String
-> String
$cshowsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
-> String
-> String
GHC.Show.Show,
      PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
-> Bool
(PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
 -> Bool)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
    -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
    -> Bool)
-> Eq
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
-> Bool
$c/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
-> Bool
== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
-> Bool
$c== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
-> Bool
GHC.Classes.Eq
    )

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

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

-- | Create a new 'PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'' with all required fields.
mkPostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause' :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
mkPostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause' :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
mkPostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause' = PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause' :: Maybe Bool
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause' {postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'Enabled :: Maybe Bool
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionPause'Enabled = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing}

-- | Defines the object schema located at @paths.\/v1\/billing_portal\/configurations\/{configuration}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.subscription_update@ in the specification.
data PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate' = PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
  { -- | default_allowed_updates
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates :: (GHC.Maybe.Maybe PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants),
    -- | enabled
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> Maybe Bool
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Enabled :: (GHC.Maybe.Maybe GHC.Types.Bool),
    -- | products
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products :: (GHC.Maybe.Maybe PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants),
    -- | proration_behavior
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior :: (GHC.Maybe.Maybe PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior')
  }
  deriving
    ( Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> String
-> String
[PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate']
-> String -> String
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> String
(Int
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
 -> String
 -> String)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
    -> String)
-> ([PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate']
    -> String -> String)
-> Show
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate']
-> String -> String
$cshowList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate']
-> String -> String
show :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> String
$cshow :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> String
showsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> String
-> String
$cshowsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> String
-> String
GHC.Show.Show,
      PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> Bool
(PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
 -> Bool)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
    -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
    -> Bool)
-> Eq
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> Bool
$c/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> Bool
== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> Bool
$c== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate' where
  toJSON :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> Value
toJSON PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"default_allowed_updates" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"enabled" Text -> Maybe Bool -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> Maybe Bool
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Enabled PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"products" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: Text
"proration_behavior" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
-> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> Encoding
toEncoding PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"default_allowed_updates" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"enabled" Text -> Maybe Bool -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> Maybe Bool
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Enabled PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> ((Text
"products" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
obj) Series -> Series -> Series
forall a. Semigroup a => a -> a -> a
GHC.Base.<> (Text
"proration_behavior" Text
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
-> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
obj))))

instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate' where
  parseJSON :: Value
-> Parser
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
parseJSON = String
-> (Object
    -> Parser
         PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate')
-> Value
-> Parser
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'" (\Object
obj -> ((((Maybe
   PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
 -> Maybe Bool
 -> Maybe
      PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
 -> Maybe
      PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate')
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
      -> Maybe Bool
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
      -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate')
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
-> Maybe Bool
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate' Parser
  (Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
   -> Maybe Bool
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
   -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate')
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants)
-> Parser
     (Maybe Bool
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
      -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"default_allowed_updates")) Parser
  (Maybe Bool
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
   -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate')
-> Parser (Maybe Bool)
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
      -> Maybe
           PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
      -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate')
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
"enabled")) Parser
  (Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
   -> Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
   -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate')
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants)
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
      -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate')
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"products")) Parser
  (Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
   -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate')
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior')
-> Parser
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
GHC.Base.<*> (Object
obj Object
-> Text
-> Parser
     (Maybe
        PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior')
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Data.Aeson.Types.FromJSON..:? Text
"proration_behavior"))

-- | Create a new 'PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'' with all required fields.
mkPostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate' :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
mkPostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate' :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
mkPostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate' =
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate' :: Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
-> Maybe Bool
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
-> Maybe
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'
    { postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates :: Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates = Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Enabled :: Maybe Bool
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Enabled = Maybe Bool
forall a. Maybe a
GHC.Maybe.Nothing,
      postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products :: Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products = Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
forall a. Maybe a
GHC.Maybe.Nothing,
      postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior :: Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior = Maybe
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
forall a. Maybe a
GHC.Maybe.Nothing
    }

-- | Defines the enum schema located at @paths.\/v1\/billing_portal\/configurations\/{configuration}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.subscription_update.properties.default_allowed_updates.anyOf.items@ in the specification.
data PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1Other Data.Aeson.Types.Internal.Value
  | -- | This constructor can be used to send values to the server which are not present in the specification yet.
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"price"@
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1EnumPrice
  | -- | Represents the JSON value @"promotion_code"@
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1EnumPromotionCode
  | -- | Represents the JSON value @"quantity"@
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1EnumQuantity
  deriving (Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
-> String
-> String
[PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1]
-> String -> String
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
-> String
(Int
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
 -> String
 -> String)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
    -> String)
-> ([PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1]
    -> String -> String)
-> Show
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1]
-> String -> String
$cshowList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1]
-> String -> String
show :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
-> String
$cshow :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
-> String
showsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
-> String
-> String
GHC.Show.Show, PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
-> Bool
(PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
 -> Bool)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
    -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
    -> Bool)
-> Eq
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
-> Bool
$c/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
-> Bool
== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
-> Bool
$c== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1 where
  toJSON :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
-> Value
toJSON (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1Other Value
val) = Value
val
  toJSON (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1Typed Text
val) = Text -> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON Text
val
  toJSON (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1EnumPrice) = Value
"price"
  toJSON (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1EnumPromotionCode) = Value
"promotion_code"
  toJSON (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1EnumQuantity) = Value
"quantity"

instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1 where
  parseJSON :: Value
-> Parser
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
parseJSON Value
val =
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
-> Parser
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
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
"price" -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1EnumPrice
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"promotion_code" -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1EnumPromotionCode
            | Value
val Value -> Value -> Bool
forall a. Eq a => a -> a -> Bool
GHC.Classes.== Value
"quantity" -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1EnumQuantity
            | Bool
GHC.Base.otherwise -> Value
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1Other Value
val
      )

-- | Defines the oneOf schema located at @paths.\/v1\/billing_portal\/configurations\/{configuration}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.subscription_update.properties.default_allowed_updates.anyOf@ in the specification.
data PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
  = -- | Represents the JSON value @""@
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'EmptyString
  | PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'ListTPostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1 ([PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1])
  deriving (Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
-> String
-> String
[PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants]
-> String -> String
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
-> String
(Int
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
 -> String
 -> String)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
    -> String)
-> ([PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants]
    -> String -> String)
-> Show
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants]
-> String -> String
$cshowList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants]
-> String -> String
show :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
-> String
$cshow :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
-> String
showsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
-> String
-> String
GHC.Show.Show, PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
-> Bool
(PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
 -> Bool)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
    -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
    -> Bool)
-> Eq
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
-> Bool
$c/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
-> Bool
== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
-> Bool
$c== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants where
  toJSON :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
-> Value
toJSON (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'ListTPostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1 [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1]
a) = [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1]
-> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'OneOf1]
a
  toJSON (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'Variants
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'DefaultAllowedUpdates'EmptyString) = Value
""

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

-- | Defines the object schema located at @paths.\/v1\/billing_portal\/configurations\/{configuration}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.subscription_update.properties.products.anyOf.items@ in the specification.
data PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1 = PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
  { -- | prices
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
-> [Text]
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Prices :: ([Data.Text.Internal.Text]),
    -- | product
    --
    -- Constraints:
    --
    -- * Maximum length of 5000
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
-> Text
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Product :: Data.Text.Internal.Text
  }
  deriving
    ( Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
-> String
-> String
[PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1]
-> String -> String
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
-> String
(Int
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
 -> String
 -> String)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
    -> String)
-> ([PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1]
    -> String -> String)
-> Show
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1]
-> String -> String
$cshowList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1]
-> String -> String
show :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
-> String
$cshow :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
-> String
showsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
-> String
-> String
$cshowsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
-> String
-> String
GHC.Show.Show,
      PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
-> Bool
(PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
 -> Bool)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
    -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
    -> Bool)
-> Eq
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
-> Bool
$c/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
-> Bool
== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
-> Bool
$c== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
-> Bool
GHC.Classes.Eq
    )

instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1 where
  toJSON :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
-> Value
toJSON PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
obj = [Pair] -> Value
Data.Aeson.Types.Internal.object (Text
"prices" Text -> [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
-> [Text]
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Prices PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
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..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
-> Text
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Product PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
obj Pair -> [Pair] -> [Pair]
forall a. a -> [a] -> [a]
: [Pair]
forall a. Monoid a => a
GHC.Base.mempty)
  toEncoding :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
-> Encoding
toEncoding PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
obj = Series -> Encoding
Data.Aeson.Encoding.Internal.pairs ((Text
"prices" Text -> [Text] -> Series
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Data.Aeson.Types.ToJSON..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
-> [Text]
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Prices PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
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..= PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
-> Text
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Product PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
obj))

instance Data.Aeson.Types.FromJSON.FromJSON PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1 where
  parseJSON :: Value
-> Parser
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
parseJSON = String
-> (Object
    -> Parser
         PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1)
-> Value
-> Parser
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.Aeson.Types.FromJSON.withObject String
"PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1" (\Object
obj -> (([Text]
 -> Text
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1)
-> Parser
     ([Text]
      -> Text
      -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1)
forall (f :: * -> *) a. Applicative f => a -> f a
GHC.Base.pure [Text]
-> Text
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1 Parser
  ([Text]
   -> Text
   -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1)
-> Parser [Text]
-> Parser
     (Text
      -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'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
"prices")) Parser
  (Text
   -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1)
-> Parser Text
-> Parser
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'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
"product"))

-- | Create a new 'PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1' with all required fields.
mkPostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1 ::
  -- | 'postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Prices'
  [Data.Text.Internal.Text] ->
  -- | 'postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Product'
  Data.Text.Internal.Text ->
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
mkPostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1 :: [Text]
-> Text
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
mkPostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1 [Text]
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Prices Text
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Product =
  PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1 :: [Text]
-> Text
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1
    { postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Prices :: [Text]
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Prices = [Text]
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Prices,
      postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Product :: Text
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Product = Text
postBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1Product
    }

-- | Defines the oneOf schema located at @paths.\/v1\/billing_portal\/configurations\/{configuration}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.subscription_update.properties.products.anyOf@ in the specification.
data PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
  = -- | Represents the JSON value @""@
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'EmptyString
  | PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'ListTPostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1 ([PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1])
  deriving (Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
-> String
-> String
[PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants]
-> String -> String
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
-> String
(Int
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
 -> String
 -> String)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
    -> String)
-> ([PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants]
    -> String -> String)
-> Show
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants]
-> String -> String
$cshowList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants]
-> String -> String
show :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
-> String
$cshow :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
-> String
showsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
-> String
-> String
$cshowsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
-> String
-> String
GHC.Show.Show, PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
-> Bool
(PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
 -> Bool)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
    -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
    -> Bool)
-> Eq
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
-> Bool
$c/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
-> Bool
== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
-> Bool
$c== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
-> Bool
GHC.Classes.Eq)

instance Data.Aeson.Types.ToJSON.ToJSON PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants where
  toJSON :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
-> Value
toJSON (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'ListTPostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1 [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1]
a) = [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1]
-> Value
forall a. ToJSON a => a -> Value
Data.Aeson.Types.ToJSON.toJSON [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'OneOf1]
a
  toJSON (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'Variants
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'Products'EmptyString) = Value
""

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

-- | Defines the enum schema located at @paths.\/v1\/billing_portal\/configurations\/{configuration}.POST.requestBody.content.application\/x-www-form-urlencoded.schema.properties.features.properties.subscription_update.properties.proration_behavior@ in the specification.
data PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
  = -- | This case is used if the value encountered during decoding does not match any of the provided cases in the specification.
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'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.
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'Typed Data.Text.Internal.Text
  | -- | Represents the JSON value @"always_invoice"@
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'EnumAlwaysInvoice
  | -- | Represents the JSON value @"create_prorations"@
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'EnumCreateProrations
  | -- | Represents the JSON value @"none"@
    PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'EnumNone
  deriving (Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
-> String
-> String
[PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior']
-> String -> String
PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
-> String
(Int
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
 -> String
 -> String)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
    -> String)
-> ([PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior']
    -> String -> String)
-> Show
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
forall a.
(Int -> a -> String -> String)
-> (a -> String) -> ([a] -> String -> String) -> Show a
showList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior']
-> String -> String
$cshowList :: [PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior']
-> String -> String
show :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
-> String
$cshow :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
-> String
showsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
-> String
-> String
$cshowsPrec :: Int
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
-> String
-> String
GHC.Show.Show, PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
-> Bool
(PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
 -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
 -> Bool)
-> (PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
    -> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
    -> Bool)
-> Eq
     PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
-> Bool
$c/= :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
-> Bool
== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
-> Bool
$c== :: PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
-> PostBillingPortalConfigurationsConfigurationRequestBodyFeatures'SubscriptionUpdate'ProrationBehavior'
-> Bool
GHC.Classes.Eq)

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

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

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